git restore コマンド

Git 基本操作Git 基本操作


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 基本操作Git 基本操作

その他の拡張