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