mohamed: 2:31
msaid: 2:41
<<<<<<< HEAD
mohamed: 2:52
=======
msaid: 2:55
>>>>>>> msaid_test/test
这是将分支与主分支合并后的最终产品。
这是合并前主分支中文件的内容:
mohamed: 2:31
msaid: 2:41
mohamed: 2:52
这是msaid_test / test分支中文件的内容:
mohamed: 2:31
msaid: 2:41
msaid: 2:55
我试图学习如何使用Sourcetree和Bitbucket来解决冲突,为什么会出现这些线? <<<<<<< HEAD
和>>>>>>> msaid_test/test
。什么是解决冲突的正确方法?
答案 0 :(得分:5)
content common to both branches
<<<<<<< HEAD
content only in HEAD, aka the master branch
=======
content only in other_branch
>>>>>>> other_branch
content common to both branches
字符串<<<<<<< HEAD
,=======
和>>>>>>> other_branch
只是表示每个分支中存在哪些文字的标记。您可以自行获取此信息并编辑文件以确定正确的版本。这可能包括删除标记,通常包括选择一组内容或另一组。有时你会选择写一些新内容,或以其他方式合并更改。
答案 1 :(得分:4)
是冲突的情况。也就是说,您的主分支包含mohamed: 2:52
作为第三行,文件包含msaid: 2:55
。 <<<<<<< HEAD
表示冲突代码的开始,>>>>>>> msaid_test/test
表示结束。您可以根据需要编辑代码来解决问题。然后再把它推给你的主人。
答案 2 :(得分:3)
假设您要从test
合并到master
。
mohamed: 2:31 # unchanged stuff
msaid: 2:41 # unchanged stuff
<<<<<<< HEAD # HEAD = last commit of the current branch (master)
mohamed: 2:52 # stuff from master that is not in test
=======
msaid: 2:55 # stuff from test that is not in master
>>>>>>> msaid_test/test
只需将文件编辑为最终应该如何显示。
答案 3 :(得分:3)
E.g。你已经将B分支合并到A分支,但遇到了一些冲突,然后git会用这种方式标记它们:
<<< HEAD
&amp;之间的内容===
是A(目标分支)的来源,以及===
和&之间的内容。 >>> B
是B的来源。您需要自己手动修复此冲突。
假设你想保留B的来源,那么你需要删除
>>> HEAD
content
===
否则,删除另一部分
===
content
<<< B
修复所有冲突后,提交源。
注意:finally资源不应包含这些标记。你应该管理它们。