git restore

コミットからファイルを復元するコマンド

コマンドの概要

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

Last modified 2020.06.11