在Linux上使用Git 1.8.1.2我一直在根据master
并行调用两个不同的分支(称它们为A和B),并且还创建了第三个分支(称之为M)合并这两个分支 - 到目前为止没有它自己的非合并提交。git merge not create merge commit,no MERGE_HEAD
上做“主”分支(A)的一个工作后,我检查了合并分支(git checkout M
),证实它已经有了B中的一切(git merge B
报告Already up-to-date.
),所以我git merge A
拉在A的新工作中。
报告了一些合并冲突,这是预期的。我编辑受影响的文件以删除冲突标记,然后git add
他们。迄今为止所有的看起来都很正常
但是当我git commit
,提交消息没有指出这是一个合并。如果我继续,结果提交(在M分支中)看起来只是一个简单的提交(在我之前合并的A和B之上); git show
不报告Merge:
父母。在提交之前,.git
包含MERGE_MODE
(空),但没有MERGE_HEAD
。
我没有使用任何特殊的合并策略,所以我想使用默认值(recursive
)。无论如何,这看起来不像一个策略问题:工作树的内容看起来完全像我期望的那样。
如果我在提交之前用A的头部的散列值手动创建MERGE_HEAD
,则所得到的提交看起来很正常,例如,在gitg
,虽然这当然让我有点紧张。
可能会发生什么?这是Git中的一个bug吗?git merge
命令中没有创建MERGE_HEAD
的任何理由吗? 1.8.4.3似乎具有相同的行为。
(有什么特别的原因,这有两个downvotes?) –
今天我们有同样的问题,但没能拖住问题。它在其他机器上完美运行。我不明白那些降价。 – pbetkier
我有同样的问题。对某人的电脑进行同样的合并可以很好地工作,这使得这种行为更加陌生。我使用gedit编写我的提交消息,mergetool是meld,IDE是netbeans,repo位于btrfs分区上。任何comon指向你的任何机会? –