문제

I have this situation : Working on some testBranch for some time and I wanted to sync with master so I did git checkout testBranch and git merge master/testBranch

So now my branch is synced with master but then I found out that I want to undo that merge and problem is that merge is done with fast forward and now my commit history is mixed with master commits and testBranch commits and I don't know how to revert to state before merge on my testBranch.

Thanks for any help

도움이 되었습니까?

해결책

git reflog show testBranch

should show the Fast-forward merge as last item ({0}). After making sure this is the case, checkout testBranch and then just do

git reset --keep testBranch@{1}

to revert to the previous state.

다른 팁

If you know of a revision in which you want your local testBranch, it is as simple as:

git checkout testBranch
git reset --hard <revision>

If you have changes mixed in like (oldest on top):

<point>
<your_change_a>
<change_from_someone_else>
<your_change_b>
<testBranch>

You could:

git checkout testBranch
git reset --hard <point>
git cherry-pick <your_change_a>
git cherry-pick <your_change_b>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top