我想弄清楚当我合并git分支时发生了什么。我有一个从主分支(develop)分支(feature_1)的分支。我做了合并
git merge develop
我得到了一些预期的冲突
CONFLICT (add/add): Merge conflict in res/values/dimens.xml
Automatic merge failed; fix conflicts and then commit the result.
该文件的状态为:
$ git diff res/values/dimens.xml
diff --cc res/values/dimens.xml
index ec31f04,554d1e7..0000000
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@@ -1,5 -1,4 +1,11 @@@
++<<<<<<< HEAD
+<resources>
+ <dimen name="left_nav_side">120dip</dimen>
+ <dimen name="left_nav_vertical_margin">30dip</dimen>
+ <dimen name="third_left_nav_vertical_margin">10dip</dimen>
++=======
+ <?xml version="1.0" encoding="utf-8"?>
+ <resources>
+ <dimen name="round_corner">4dp</dimen>
++>>>>>>> develop
</resources>
在这个文件中似乎有两种类型的“差异”,带有优缺点的那些和带有“HEAD”的箭头的那些。当我在合并工具中打开它时,我会得到一些我认为不对的东西:
正如您所看到的,工作树更改显示为差异并将标记显示为文件的一部分,我认为它们不应该。我得到了与IntelliJ“解决冲突”工具类似的东西。 有人能告诉我我做错了什么或我错过了什么?或者你可以告诉我文件中发生了什么?
答案 0 :(得分:0)
文件本身包含冲突标记;它看起来像这样:
<<<<<<< HEAD
<resources>
<dimen name="left_nav_side">120dip</dimen>
<dimen name="left_nav_vertical_margin">30dip</dimen>
<dimen name="third_left_nav_vertical_margin">10dip</dimen>
=======
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="round_corner">4dp</dimen>
>>>>>>> develop
</resources>
合并已在提交之间停止,以便您有机会解决问题,因此,如果您diff
该文件,它将显示文件和上次提交之间的更改,这将显示所有新内容在该提交中,加上git添加到文件的冲突标记
您真正想要做的是编辑文件,解决冲突,删除标记,然后git add res/values/dimens.xml; git commit
来修复冲突的提交
答案 1 :(得分:0)
冲突标记始终是文件的一部分,因为它是正确的。标记不仅由git使用,例如netbeans也使用标记。使用标记,外部程序知道存在合并问题以及如何解决它。