マージコミットを削除する


マージコミットをgit resetしたらどうなるの?

例えば以下のようにマージ済みのコミットがあり、マージ前のブランチを消している状態として、

* 3333333 master
|\
| * 22222222
|/
* 1111111

マージ先間違えた!みたいな感じで、そのままgit reset --soft HEAD^しちゃうと、

* 3333333 master
|
* 1111111

こうなってしまう。

このため、マージコミットを削除する時は、マージ前のコミットにブランチを付け直しましょう。

git checkout -b topic.revive 2222222

ただし、gitの世界では、git resetgit rebaseしても、該当のコミットは残っているそうなので、マージコミット削除後でも、コミットIDさえ覚えていれば、そこからブランチを復旧できる・・・ハズ。