2013-11-14 61 views
2

在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似乎具有相同的行为。

+0

(有什么特别的原因,这有两个downvotes?) –

+0

今天我们有同样的问题,但没能拖住问题。它在其他机器上完美运行。我不明白那些降价。 – pbetkier

+0

我有同样的问题。对某人的电脑进行同样的合并可以很好地工作,这使得这种行为更加陌生。我使用gedit编写我的提交消息,mergetool是meld,IDE是netbeans,repo位于btrfs分区上。任何comon指向你的任何机会? –

回答

2

我相信你应该使用

git merge --no-ff your_feature_branch 
+0

谢谢,但是这个选项的文档(_Create a合并提交,即使合并解析为快速转发)在这里似乎也不适用,因为合并确实没有解决方案作为快速转发。 –

相关问题