実際やらかしたこと
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