LoginSignup
1
1

More than 5 years have passed since last update.

【Git】間違えて消したファイルの取り戻し方

Posted at

だいぶ前に削除したファイルを、後になって「あれ消しちゃったの!!早急元に戻しといて!」と言われた時のための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…いわゆるチェックアウトです。ブランチ切り替えでも使いますが、今回の場合は前のコミットの状態に戻す意味で使っています。
- ^…このコミットの一つ前のコミットを意味します。このブランチまで戻ると消した後になってしまうので、その一つ前にもどすんですね。
- --…オプションはないよという引数です。

これで指定ファイルだけが戻った状態になったかと思います。
消したファイルを戻さなくちゃいけなくなった時は試して見てください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1