0

在 git 生成的冲突解决文件中,仅应在标记之外显示公共代码('<<<<<<< ours' - '>>>>>>> theirs') - 对吗?!

我有一个 CSS 文件,其中包含我在本地版本中插入的注释并且发生了冲突,并且此注释段列在标记之外。

这发生在普通样式和 diff3 样式(包括基本段)中。

使用可视化工具(在我的情况下为 p4merge)时,所述文本段仅在本地显示,而不在基本或远程显示。

还检查了:

git checkout --theirs <file-name>
--> said segment not there

git checkout --ours <file-name>
--> said segment there

git checkout -m <file-name>
--> said segment outside markers

发生什么了?!

4

1 回答 1

1

对有冲突的文件部分的“仅本地”更改有多“接近”?

您的“仅限本地”更改所在的文件部分附近可能没有文本冲突,并且文件的该部分已自动合并。

例如,假设您从分支 A 开始,使用一个名为 README 的文件,该文件如下所示:

README

foo

bar

然后你 fork 一个新的分支 B。在分支 B 上,你改变 README 看起来像

README

foo

baz

并提交它。现在切换回分支 A,进行两次更改并提交,因此分支 A 的 README 如下所示:

README

frotz

foo

qux

现在你将 B 合并到 A 中。这就是你得到的(使用 diff3 冲突样式):

README

frotz

foo

<<<<<<< HEAD
qux
||||||| merged common ancestors
bar
=======
baz
>>>>>>> B

如您所见,git 自动合并了文件的第一部分,但在第二部分上进行了合并。

于 2012-05-20T21:58:04.723 回答