50

機能ブランチ (「feedback_tab」) の 1 つにいくつかの変更をコミットし、「master」をチェックアウトしてそこにマージしました。私は実際にそれらを「開発」ブランチにマージするつもりでした。

現在、master は 'origin/master' (そのリモート) よりも 17 コミット進んでいます。マスターを誤ってマージする前と同じ状態に戻すにはどうすればよいですか? 私はこれとの間で混乱git revertgit resetています。

git ログを調べたところ、feedback_tab を master にマージするためのエントリがありません。私はそれがトップエントリーになると思っていたでしょうか?

少し混乱しています:/どんな助けも歓迎します! 最大

4

4 に答える 4

81

プッシュされていないマージを元に戻すには:

git reset --merge ORIG_HEAD

マージ中に競合が発生した場合、マージを元に戻す最良の方法は次のとおりです。

git merge --abort
于 2014-11-06T16:30:52.773 に答える
37

git reset --hard HEAD~17master の先頭より 17 コミット前に戻ります。git rebase -i HEAD~17おそらく余分なコミットも取り除きます。

于 2011-05-10T14:06:58.343 に答える
12

git resetから取得

Undo a merge or pull

    $ git pull                         <1>
    Auto-merging nitfol
    CONFLICT (content): Merge conflict in nitfol
    Automatic merge failed; fix conflicts and then commit the result.
    $ git reset --hard                 <2>
    $ git pull . topic/branch          <3>
    Updating from 41223... to 13134...
    Fast-forward
    $ git reset --hard ORIG_HEAD       <4>
于 2011-05-10T14:10:04.737 に答える