普段の開発は一人1ブランチみたいな感じで複数人で1つのブランチを触ることが無いのでgit push -f hogehoge
をたまに使うんですが、この間push先のブランチ名を間違えてそのブランチの修正内容を吹き飛ばしてしまいました…
自分のGit史上1番の大やらかしだったのですが、なんとか回避したのでメモがてら残しておきます。
元々のコミットハッシュを取得する。
まずはやらかしたの元々のを取得します。
自分はテンパリすぎてGitHubでみましたがGit log
とかでも多分大丈夫だと思います。
この79282af
がforce pushされる前のコミットハッシュなのでこれで大丈夫だとは思うのですが念のためコミットの詳細画面へ行って
フルバージョンのコミットハッシュを確認してコピーしておきます。
元のコミットに戻す
やらかしたブランチに移動してそのブランチで
git reset --hard [コピーしたコミットハッシュ]
を実行して元の状態に戻します。
コマンドを実行した状態で元の状態に戻っているはずなので一応確認してください。
再度プッシュする
元の状態に戻っていることを確認できたら
git push -f origin [やらかしたブランチ]
でリモートブランチも元に戻っているはずです。
あとがき
まじでめちゃめちゃ焦りましたが
git reset --hard [コピーしたコミットハッシュ]
が実行できて戻った時点でめっちゃ安心しました。
やらかした時点で落ち着いて解決策をググれたのでなんとか大丈夫でした。
やらかしたときはまず落ち着くことが大事ですね。