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
を移動する