git restore
コマンドの概要
特定のファイル、ディレクトリをコミットから復元するコマンド。指定がなければ HEAD から、--sourceオプションにより特定のコミットから復元することもできる。--stagedオプションでコミットからインデックスに復元することも可能。git checkoutとgit resetで実現できるが、git restoreを使う方がわかりやすい。
コマンドの使い方
--worktreeオプションによりワーキングツリーに展開される。
(デフォルトオプション)--source指定がなければ HEAD から、--source指定により特定のコミット
HEAD を指定してgit restoreすると HEAD コミット後のワーキングツリーの変更が破棄される。
HEADからワーキングツリーへリストア
1$ git restore <file>
2$ git checkout -- <file>
3$ git reset --hard HEAD
<commit>からワーキングツリーへリストア
1$ git restore --source <commit> <file>
2$ git checkout <commit> -- <file>
--stagedオプションによりインデックスが復元される。
すなわち、インデックスにステージされた変更がステージされる前に戻る、git addの取り消しとなる。
HEAD から<file>をインデックスにリストア
1$ git restore --staged <file>
2$ git reset <file>
関連するコマンド
git reset : git addを取り消す
git checkout : 特定のコミットにHEADを移動する