質問: マージの取り消しをしたいです教えて下さい。 間違ってマージをしてしまいました。 現在のブランチがHEADでマージをしたら、masterブランチが消えてしまいました。 プッシュはしていない状態なので、リモートの方は何も更新されてない状態だと思っています。 どのような操作を行えば良いでしょうか?SourceTreeを使っております。 こちらの参考にしようかと思っていますが正しいでしょうか? 参考URL > > 『※マージのコミットを打ち消す操作は SourceTree > > ではできないようです。右上の「端末」ボタンを押すと、ターミナルが開くのでコマンドを入力します。 「git revert -m1 > > HEAD」(直前のコミットの場合)。直前のコミットでない場合は、HEAD ではなくそのコミットのハッシュ値にします。』 > > > 追記8/11 masterブランチは消えていないと言うことですね。 こちらを参考にすれば、ソースツリーのグラフを元の状態に戻せますか? 参考2 > > やらかし15:マージしたけどやっぱり元に戻したい時 > > > あくまで他者に取り込まれていない場合です! > > マージする。 > > $ git checkout <マージ先ブランチ> > > $ git merge <マージ元ブランチ> > > > マージしたあと、やっぱやめよって思ったらこれをやる > > ORIG_HEADを指定すればマージ前に戻る > > $ git reset --hard ORIG_HEAD > > >
回答: 「元に戻す」というのが良く分からないのですが、コミットの参照を`master`やその他ブランチから外すことを、`detached HEAD`といい、この状態で行った変更はどこかのブランチを再度`checkout`すればなかったことになります。 ですので、GUI上から`master`ブランチを再度チェックアウトしてみてはどうでしょうか。 gitを覚えたばかりのときは、今何をして、どういう状態になっているのか、訳が分からなくなるかもしれません。そこで、`git reflog`コマンドを覚えることをお奨めします。これはローカルのブランチに行った変更の履歴を見ることができます。特定の状態に`checkout`できるので、おおよそどうにでもなります。