gitで削除してしまったリモートブランチを元に戻して復元する

探せば情報はあるんだけど多分焦ってると思うのでちょっと丁寧に解説




実際やらかしたこと



masterとAブランチその他諸々の構成。
リモートのAブランチを削除。
ローカルでAブランチを持っているが若干古い。



ブランチ名と最終リビジョン番号さえあれば復元可能



戻したいレポジトリの対象リビジョンを取得する


git reflog

で変更履歴を見ることができる(ローカルのみ)
対象のブランチの最終リビジョン番号を確認する。
例えばdd3e135xyzとする。


ブランチをリビジョン番号を指定して作成


ローカルに古いブランチが残っている場合は一旦消す。
git branch -D A
ローカルに残っているソースが最新ならpushし直すだけでいいはず。

git branch A dd3e135xyz
でローカルにブランチを完全復元できる。
git branch ブランチ名 HEAD@{ログ番号}
でもいけるらしい。

リモートブランチへプッシュ


git push origin A


履歴も完全に元どおり
git便利


参考



https://coolchicprogramer.wordpress.com/2016/12/13/git%E8%AA%A4%E3%81%A3%E3%81%A6%E5%89%8A%E9%99%A4%E3%81%97%E3%81%9F%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%81%AE%E5%BE%A9%E5%85%83%E6%96%B9%E6%B3%95/

https://qiita.com/muran001/items/dea2bbbaea1260098051#%E3%82%84%E3%82%89%E3%81%8B%E3%81%97%EF%BC%91%EF%BC%92%E3%81%86%E3%81%A3%E3%81%8B%E3%82%8A%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%9F%E3%81%91%E3%81%A9%E5%85%83%E3%81%AB%E6%88%BB%E3%81%97%E3%81%9F%E3%81%84%E6%99%82

https://qiita.com/shimomai@github/items/50b62dd2b3d92170f1f3

2018年4月28日土曜日