gitで削除してしまったファイルの復元
gitで削除してはダメなファイルを消した事が後から発覚した場合、
該当のファイルを復元させる方法をメモ。
↓の「del important file」のコミットで消したヤツを復元させたい!
手順1.消したコミットのハッシュを取得する
$ git rev-list -n 1 HEAD -- important.txt 53599a4616710108d8fd035cf3c303a036a3c59c
「HEAD」オプションが全てのコミットを表示。
「-n 1」で表示する数を1つに絞る。
「-- <filepath>」で対象のファイルを指定できる。
SourceTreeを使ってれば、視覚的にわかるよねー。
手順2.削除対象のファイルを復元
$ git checkout 53599a4616710108d8fd035cf3c303a036a3c59c^ -- important.txt $ ls README.md etc.txt important.txt important2.txt readme.txt
復元したファイルはステージエリアに格納されている。
手順3.復元したファイルを再度コミット
無事に復元成功。
我々は過去の遺産を取り戻したのだ。
参考ページ
http://stackoverflow.com/questions/953481/restore-a-deleted-file-in-a-git-repo
Charles Baileyさん、超ありがとう。
消す前のコミットに戻ってバックアップを取り、再度コミットしなおす
っていう原始的な方法もあるけど、コマンドでスマートに出来る方がいいよね。