Reverting a git merge while allowing for the same merge later)

后端 未结 3 1480
时光取名叫无心
时光取名叫无心 2020-12-07 00:14

What\'s the best way to revert a committed git merge while keeping the option of merging the same branch at a later point?

This is for a situation when I merge a bra

3条回答
  •  执念已碎
    2020-12-07 00:26

    If you have not yet published your merge commit (pushed to the central server), the best solution is to rewrite history to remove the merge commit.

    1. If there are no other commits after the merge commit, reset the head to the previous commit:

    git reset HEAD^

    1. If there are other commits after the merge commit, you'll need to do a rebase and remove the merge commit, while re-applying the other commits.

    git rebase -i

    If you have published the merge, you will need to decide whether it is better to rewrite history to preserve proper merge potential for your branch, or simply add a revert commit. This will require talking to everyone who may have potentially downloaded the merge.

    If you cannot rewrite history, you'll need to do a revert:

    git revert -m 1

    In this case, a future merge of the branch will need manual intervention. You may need to cherry-pick commits that are not picked up by the merge, or revert your revert commit.

提交回复
热议问题