git restore コマンド
git restore このコマンドは、ファイルの変更を復元または取り消すために使用されます。
git restoreこのコマンドは Git 2.23 バージョンで導入され、ファイルの復元操作を簡素化・改善するために使用されます。古いコマンド(例:git checkoutとgit reset)と比較して、ファイルの内容と作業ツリーの状態の復元により重点を置いています。
git restore作業ツリーとステージングエリア内のファイルを復元でき、未コミットの変更を破棄するためにも使用できます。
基本構文
git restore [<options>] [<pathspec>...]
<pathspec>:復元するファイルまたはディレクトリのパス。<options>:復元動作をカスタマイズするためのオプション。
一般的なオプションと使い方
| オプション | 説明 | 使用例 |
|---|---|---|
--source=<commit> | 指定したコミットからファイルの内容を復元します。デフォルトは HEAD、つまり現在のコミットです。 | git restore --source=HEAD~1 file.txt |
--staged | ステージングエリア内のファイルの内容を作業ツリーに復元します(作業ツリー内の内容を復元するのではありません)。 | git restore --staged file.txt |
--worktree | 作業ツリー内のファイルの内容を現在の作業ツリーの状態に復元します。 | git restore --worktree file.txt |
--ours | マージ競合時、現在のブランチのバージョン(つまり「私たち」のバージョン)を復元します。 | git restore --ours file.txt |
--theirs | マージ競合時、もう一方のブランチのバージョン(つまり「彼ら」のバージョン)を復元します。 | git restore --theirs file.txt |
--conflict=<style> | マージ競合のスタイルを指定します。例:merge 或 diff3。 | git restore --conflict=diff3 file.txt |
--dry-run | 復元されるファイルとパスを表示します(実際には復元しません)。 | git restore --dry-run |
-s, --source | と--source同じく、指定したコミットからファイルを復元するために使用します。 | git restore -s HEAD~1 file.txt |
-W, --worktree | 作業ツリー内のファイルの内容を現在の作業ツリーの状態に復元します(--worktree同じ)。 | git restore -W file.txt |
-S, --staged | ステージングエリア内のファイルの内容を作業ツリーに復元します。作業ツリー内の内容を復元するのではありません(--staged同じ)。 | git restore -S file.txt |
例
作業ツリー内のファイルを復元する
作業ツリー内のファイルを直近のコミット状態に復元します(つまり、ファイルに対する未コミットの変更をすべて破棄します):
git restore file.txt
ステージングエリア内のファイルを復元する
ステージングエリア内のファイルを作業ツリーに復元します。実際にはファイルをステージングエリアから削除します(コミットしません):
git restore --staged file.txt
指定したコミットからファイルを復元する
特定のコミット(例: HEAD~1)からファイルを復元します:
git restore --source=HEAD~1 file.txt
ファイルの「私たち」バージョンを復元する
マージ競合時、現在のブランチのバージョン(つまり「私たち」のバージョン)を復元します:
git restore --ours file.txt
ファイルの「彼ら」バージョンを復元する
マージ競合時、もう一方のブランチのバージョン(つまり「彼ら」のバージョン)を復元します:
git restore --theirs file.txt
復元されるファイルとパスを表示する
復元されるファイルとパスを表示します(実際には復元しません):
git restore --dry-run
複数のファイルを復元する
作業ツリー内の複数のファイルを復元します:
git restore file1.txt file2.txt
その他の拡張
Git 基本操作