間違えて必要なブランチを消してしちゃった!復活させる方法はないのかな?
Gitでバージョン管理をしていると「マージする前のブランチを誤って削除してしまった」というケースがあると思います。
そこで今回は、ブランチの削除を取り消して、ブランチを復活させる方法を解説します。
【Git】ブランチの削除を取り消して復活させる方法
前提として、削除したブランチを復活させるとは「ブランチを最新コミットに戻すこと」を指します。
ちなみに、ブランチは消えてもコミット自体は残っています。
つまり、何らかの方法でコミット履歴から最新のコミットを探し出せばブランチを復活させることが可能ということです。
ではどうやってコミット履歴から最新のコミットを探し出すのか?というと、git reflogコマンドを使います。
- git reflog
- :過去のコミットやブランチの変更等の操作履歴を表示するコマンド
git reflogで対象ブランチの最新コミットを探す
では、削除してしまったブランチの捜索活動を始めましょう。
「feature_01」というブランチを削除したと仮定します。
git reflogを実行してみます。
$ git reflog
すると、過去のコミット履歴やブランチの移動、マージの履歴などが表示されました。
なお、履歴は上にあるほど新しいものです。
今回の捜索対象は「feature_01の最新コミット」ですから、上から順に辿っていくと..。6行目に「commit: feature_01に新機能を追加」というコミット履歴を発見しました。
これが削除したブランチの最新コミットなので、これを復活すればOKです。
ブランチを復活させるGitコマンドはこちらです。
$ git branch 削除したブランチ名 HEAD@{番号}
HEAD@~に続く番号は、コミット履歴と同じ数字が入ります。今回だとHEAD@{5}ですね。
$ git branch feature_01 HEAD@{5}
実行すると、削除されたブランチが復活します。
念のためgit branchコマンドで確認してみます。
ちゃんと復活してますね。
まとめ
今回は、誤って削除してしまったブランチを復活させる方法をお伝えしました。
ブランチというのは「最新コミット」を指すポインタにすぎず、削除してもコミット自体は残っているので、慌てずに対処しましょう。