1
mohamed: 2:31
msaid: 2:41
<<<<<<< HEAD
mohamed: 2:52
=======
msaid: 2:55
>>>>>>> msaid_test/test

这是将分支与主分支合并后的最终产品。

这是合并前 master 分支中文件的内容:

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。解决冲突的正确方法是什么?

4

4 回答 4

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只是指示每个分支中存在哪些文本的标记。您可以获取此信息并编辑文件以确定正确的版本。这可能包括删除标记,并且通常包括选择一组内容或另一组内容。有时您会选择编写新内容,或者合并更改。

于 2013-09-15T13:37:20.347 回答
4

这是冲突的情况。也就是说,您的主分支包含mohamed: 2:52作为第三行,文件包含msaid: 2:55. <<<<<<< HEAD指示冲突代码的开始并指示 >>>>>>> msaid_test/test结束。您可以通过根据需要编辑代码来解决它。并再次将其推送给您的主人。

于 2013-09-15T13:38:04.537 回答
3

例如,你已经将 B 分支合并到 A 分支,但是遇到了一些冲突,那么 git 会这样标记它们:

<<< HEAD&之间的内容===是 A 的来源(目标分支),===&之间的内容>>> B是 B 的来源。这个冲突需要你自己手动修复。

假设你想保留B的源,那么你需要删除

>>> HEAD
content
===

否则,删除另一部分

===
content
<<< B

解决所有冲突后,提交源代码。

注意:finally 资源不应包含这些标记。你应该管理它们。

于 2013-09-15T13:36:37.413 回答
3

假设你想从testinto合并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

只需将文件编辑为最终的外观即可。

于 2013-09-15T13:35:35.520 回答