何者にもなれていない5年目のエンジニアブログ

git でmergeした時、conflictが発生。それを解消してcommitしてpushしたんだけど、やっぱり無かったことにしたい。

はい。 git でmergeした時、conflictが発生。それを解消してcommitしてpushしたんだけど、やっぱり無かったことにしたい。

こんな時、

(´-`).。oO(まじでやっちまったー。もうどうしたらいいかわからないよー。dふぉdふぉdんfdsf;)

と思うのですが、まずは落ち着きましょう。

実際、merge commitはgit revert -m 1 コミット名で消せます。

ですが、困ったことに再度mergeが出来なくなります。 要するに同じコミット名であるため、mergeを受け付けなくなるのです。

一番簡単な方法ですが、

もし、mergeしたbranchが、自分しか使ってないブランチであった場合は、git reset --hard HEAD^ で一個前に戻して上げましょう。

そして禁断のコマンド git push -f origin ブランチ名 をすれば解決します。 ですが、他にそのブランチを使っている人がいたらただじゃ済まないので、周りをよくみてからよく相談してからgit push -fは使いましょう。

コミット名が被っているから再度mergeできない訳で、git revert -m 1でなかったことにした後、rebaseするなりなんなりしてコミット名を変えて再度mergeするのが一番じゃないでしょうか。