🕌

gitでremoteブランチまでpushしたのを履歴含めて上書きしたい

2022/07/28に公開

gitとGit Hub便利ですよね。

ただ間違ってリモートブランチまでpushしたが、
戻したい場合があると思います。

チームみたいに何人かでやっている場合は、
git revertで対象のコミットを打ち消した形で
処理することが多いと思います。

ただし、少数で作業しているため履歴を上書きした方が
混乱しない場合や、みんなが何も考えずにグチャグチャ変更した場合は、
丸々上書きした方が後々楽かと思います。

下のように変更しましょう。

# HEAD^はローカルレポジトリの対象のブランチから見て最後から一つ前のコミット
# 二つ前ならHEAD^^
# 二つ以上前ならcommitidで指定した方が安全。
git reset --hard HEAD^
# リモートリポジトリのoriginのmainブランチに向けてpush
git push -f origin main

これで指定のコミットの履歴が上書きされ、粗相の証拠含めて綺麗さっぱり消えます。

Discussion