Gitで削除などの変更(ステージング前の段階)を復元する方法
はじめに
この記事では、「Gitで削除などの変更(ステージング前の段階)を復元する方法」について書いています。
git rm
でファイルを消した後、そのファイルを復元しようとしても上手くいかずに調べたのが記事を書いたきっかけでした。
自分に向けた備忘録でもありますが、「Gitで削除や編集したファイルを復元したい」な人の一助になれば嬉しいです。
要点だけ
git checkout <ファイル名>
またはgit restore <ファイル名>
説明
Note
試した際の環境は以下の通りです。
実験で使うgitのリポジトリは以下のような構成になっており、またリポジトリ内のファイルは全て登録されているものとします。
sample ├ .git │ └ ... ├ alpha.txt └ beta.txt
ここから単純にbeta.txt
をローカルで削除しただけの状態でスタートしたいと思います。
Note
削除した例で説明してますが、ファイル内を編集したといった変更でも同じ要領で復元する行うことができます。
単純にbeta.txt
をローカルで削除しただけの状態でスタートしたいと思います。
この時のリポジトリ(フォルダ)の状態は以下のようにbeta.txt
は削除されています。
sample ├ .git │ └ ... └ alpha.txt
また、git status
を実行すると次のような出力が得られると思います。
On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) deleted: beta.txt no changes added to commit (use "git add" and/or "git commit -a")
この状態から復元するにはcheckout
コマンドを使用します。
git checkout <ファイル名>
この例だと
git checkout beta.txt
を実行することで削除前の状態に復元することができます。
また、checkout
コマンドの代替として用意されたrestore
コマンドを使って復元することもできます。
git restore <ファイル名>
おわりに
「Gitで削除などの変更(ステージング前の段階)を復元する方法」について解説しました。
誤った処理(特に削除)をしてしまった時、少しテンパってしまいますが復元する方法が分かったので安心して変更を加えていけそうです。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。