いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

間違えてマージしちゃいけないブランチにマージしてしまったときにリモートのコミット状態に一致させる (git, merge, checkout, reset --hard)

概要

記事のタイトルそのままなのですが、先日ボケーっとしてて本来マージするべきじゃないブランチに間違えてマージしちゃって、アワワワってなったので、忘れないうちにメモメモ。

以下のような事をしてしまった

# 今絶賛作業してるのは master じゃなくて xxxx ブランチから分岐した xxxx-2 ブランチ
$ git branch
* xxxx-2
  xxxx
  master

# いろいろ作業してコミット積み上げ

# んじゃマージしよ
$ git checkout -b master
$ git merge xxxx-2

# マージが普通に成功しちゃって 何十コミットも入ってしまった・・・

git reset --hard で戻す

git なので、大体なんとかなるっておもいつつ、結構焦りつつ・・

情報を探すと、以下の情報がありました。

qiita.com

stackoverflow.com

まさにこれです。公開してくださってありがとうございました。助かりました。

てことで、焦らずに以下を実行するとちゃんと元に戻りました。

$ git branch
  xxxx-2
  xxxx
* master

# ローカルブランチの状況をリモートブランチの状態に強制一致させる
$ git fetch
$ git reset --hard origin/master

過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。