Thread (3 messages) flat view 3 messages, 3 authors, 2016-06-15

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).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help