[GitHub 100日チャレンジ] Day 64 - Git Restoreでファイルを戻す
git restoreで作業中のファイルを戻す方法、stageを外す方法、resetとの違いを整理します。
[GitHub 100日チャレンジ] Day 64 - Git Restoreでファイルを戻す
git restoreとは
git restoreは、ファイル単位で変更を戻すための命令です。以前は git checkout -- file がよく使われましたが、現在は役割が分かりやすい restore を使えます。
1
2
git restore file.js
git restore --staged file.js
Working Directoryを戻す
file.jsはGitで追跡中のファイル名の例です。通常のgit restore file.jsはステージング領域の内容へ戻すため、すでにステージングした編集まで消す操作ではありません。比較する前に未ステージの差分とステージ済みの差分を分けて確認しましょう。 Git公式のrestore説明でも、既定の復元元と対象を確認できます。
1
2
git diff file.js
git restore file.js
これは未コミットの変更を捨てます。消す前に git diff で内容を確認しましょう。
stageを外す
1
2
git add app.js
git restore --staged app.js
--stagedはstageから外すだけです。ファイルの中身は残ります。
特定コミットから戻す
1
2
git restore --source=abc1234 -- src/app.js
git restore --source=main -- src/styles/
過去のコミットや別ブランチから、特定ファイルだけ取り出せます。
resetとの違い
restore: ファイルを戻すreset: コミットやstageの状態を動かすrevert: 共有済みの変更を新しいコミットで打ち消す
今日のゴール
ファイルの変更を捨てるときは git restore、stageを外すときは git restore --staged を使えるようにしましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
