LoginSignup
5
4

More than 3 years have passed since last update.

Gitでやらかしたコミット&プッシュを無かったことにした話

Last updated at Posted at 2020-05-28

こんにちは、@0yanです。
運用中のアプリのコード修正時、直前のgit addを取り消したかったのですが、某記事に書いてあった「はじめてのgit addを取り消す」という内容を「最近行ったaddの1回目を取り消す」という意味だと勘違いし、git rm --cached -r .を実行後、マスターブランチにgit pushするという大失態を犯しました。git initした後のgit addを取り消すという意味だったらしく、GitHubのマスターブランチは空っぽに・・・。

本記事はそれを解決したという記事です。こんなしょうもないことをする人はいないと思いますが、万が一、私と同じことをしてしまった方がいた時に役立つよう投稿しておきます。あぁ、恥ずかしい。

解決手順

  1. GitHubのリモートリポジトリで元に戻したいコミットのコミットIDを調べる
  2. ローカルリポジトリで元に戻したいコミット以降のコミット(=やらかしたコミット)を、git reset --hard [1で調べたコミットID]によって削除
  3. git push -f origin masterでリモートリポジトリに強制プッシュ

補足

git resetはあまり推奨されない方法らしく、本当はgit revertを使った方が良いそうです。詳しくは以下の記事等をご参照ください。

【Git】間違ってpushした場合の取り消し方

参考文献

git commit を取り消して元に戻す方法、徹底まとめ

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4