Re: [BUG?] git checkout -b removes MERGE_HEAD
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:04
"Jan Hudec" [off-list ref] writes:
- During the testing I found a problem, but it may have already existed on master before the merge. - Therefore I needed to return to clean master, test it and return to the merge. So I thought I'd commit the merge to a temporary branch, test master again and merge the temporary to master if the problem is not from the merge. So I did: $ git checkout -b temp $ git commit OOPS! It forgot it was a merge.
I think it was an oversight by the author of 91dcdfd (Make "git checkout"
create new branches on demand, 2005-07-11) who forgot that he also did
ef0bfa2 (Remove MERGE_HEAD in "git checkout/reset", 2005-06-21). The
rationale for the removal of MERGE_HEAD from the earlier commit is:
[this command] will end up resetting the index to some specific
head, and any unresolved merge will be forgotten [hence there is no
point recording the result as a merge].
but when used with -b no such "resetting of the index" happens.
Having said that, changing it not to remove MERGE_HEAD and MERGE_MSG is
probably not sufficient, as MERGE_MSG would likely to already record to
which branch you are recording the merge (I didn't check, though).