だいぶ前に削除したファイルを、後になって「あれ消しちゃったの!!早急元に戻しといて!」と言われた時のためのTips。
まずターミナルを開いて、git管理しているディレクトリまで移動してきましょう。
参考コマンド
cd
…移動
ls
…リスト表示
ディレクトリにたどり着いたら、ファイルの削除を実行したGitのログを探していきます。
git log --diff-filter=D --summary
-
git log
…ログを最新順で表示してくれます。 -
--diff-filter=D
…何かを削除した時のコミットデータだけに制限します -
--summary
で操作したファイル名が確認できます
コードを入力すると、削除したコミットログとファイル名が羅列されます。ぱっと見てなかったら、下方向の矢印を押すことで、さらに過去のコミットログを見ることができます。また、qを押せば終了することができます。
commit b322eb6c0833cffcc6e7c6c4990d5ed11177ad40
Author: nabe <nabe_nabe@yahoo.co.jp>
Date: Fri Oct 19 16:08:52 2018 +0900
modify: #211 不要ファイル削除
delete mode 100644 dist/test1.html
delete mode 100644 dist/test2.html
自分の求めているファイルを見つけたら、その情報のコミットIDとファイル名をコピペしましょう。
次に、削除してしまったファイルとそのコミットログを指定して、指定ファイルだけ削除する前に戻します。
git checkout 『コミットID』 -- 『ファイル名』
具体的に書くと…
git checkout b322eb6c0833cffcc6e7c6c4990d5ed11177ad40^ -- dist/test2.html
こんな感じになります。
これで指定されたファイルは元に戻っているはずです。このコードの解説をいたしますと…
- checkout
…いわゆるチェックアウトです。ブランチ切り替えでも使いますが、今回の場合は前のコミットの状態に戻す意味で使っています。
- ^
…このコミットの一つ前のコミットを意味します。このブランチまで戻ると消した後になってしまうので、その一つ前にもどすんですね。
- --
…オプションはないよという引数です。
これで指定ファイルだけが戻った状態になったかと思います。
消したファイルを戻さなくちゃいけなくなった時は試して見てください。