git reflogで削除したブランチを復活
gitで作業していて、間違って作業中のブランチを消してしまったっとき
$ git reflog
をたたくと、現時点までのgitにおける作業ログが見れる。全てのブランチのコミットだけでなく、checkoutやrebase, commit amendなども見れる。
ここから復元したいブランチの最終コミット(最終でなくてもいいけど、普通は削除した最後の状態で戻したいと思うので)の SHA_1をコピーし、ふたたび
git checkout [SHA_1]
でそのコミットを空のブランチに復元します。そんでもって
git checkout -b [branch_name]
で、目的のコミットツリーを新しいブランチとして作ることができる。簡単!
ちなみにtigを入れている人は
$ git reflog --pretty=raw | tig --pretty=raw
でtigなカラーリングと、より細かいreflogが見れる。閲覧できる数は減るものの、コミットメッセージのみで目的のコミットを探すのが難しい場合はこちらの方が良い