はじめに
いざというときのために作業を取り消すコマンドを知っておくと安心です。同じような意味のコマンドもあるため、どれを使えばいいのか迷ってしまわないよう最初におすすめのコマンドを記載しています。見出し横の「A→B」という表記はBをAの状態に戻すという意味です。
ファイルの変更を取り消す(インデックス→ワークツリー)
まだコミットしていないワークツリー内のファイルの変更を取り消すには以下を使用。
git restore ファイル
以下もすべて同じ動作です。
git restore -- ファイル # ファイル名が"--"で始まる場合などに
git restore --worktree ファイル
git restore --W ファイル
git checkout -- ファイル # gitのバージョンが古くrestoreが使えない場合に
git checkout ファイル # 同名ブランチが存在しない場合のみ、ファイル復元として動作
補足:ファイルを復元するgit restore
(とブランチを切り替えるgit switch
)はバージョン2.23(2019年8月)でgit checkout
の役割を分離するために導入されました。バージョンが古い場合はgit checkout
を使用してください。
addを取り消す(HEAD→インデックス)
git restore --staged ファイル
以下もすべて同じ動作です。
git restore -S # Sは大文字
git reset -- ファイル # gitのバージョンが古くrestoreが使えない場合に
git reset ファイル # ファイル名がheadやコミットのハッシュではない場合に