git restore

コマンドの概要

特定のファイル、ディレクトリをコミットから復元するコマンド。指定がなければ HEAD から、--sourceオプションにより特定のコミットから復元することもできる。--stagedオプションでコミットからインデックスに復元することも可能。
git checkoutgit 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を移動する