80

为什么在合并我的代码和其他人的代码时给我三个选择?不应该只有我的代码,其他人的代码,以及下面的输出吗?KDIFF 的文档并不能帮助我理解。

4

5 回答 5

78

A是指您的合并目标所基于的版本。如果您从分支合并到主干,“A”将是以前的主干版本。

B是您当前在本地主干文件夹中拥有的内容,包括本地更改。

C是您要在 B 之上合并的版本。

于 2011-08-09T07:49:07.527 回答
39

听起来你正在做一个三向合并,所以 A 应该是 B 和 C 所基于的基本版本,B 是他们的,C 是你的(我相信;B 和 C 可能是相反的)。

于 2010-10-25T20:23:59.087 回答
13

A 是您的父版本,其中 B 和 C 为 child
这意味着 B 包含由user1/repo1对 A 所做的更改,而 C 还包含对 A 但其他用户(user2/repo2)所做的更改

kdiff 让您可以选择从 b 或 c(或两者都选择)或从父级选择修改“A”

于 2011-10-31T06:16:25.750 回答
12

A (BASE) -‐> 当前位于远程仓库中的原始文件。
B(本地)-‐> 您的文件。
与 A.C (REMOTE) -‐> 他们的文件相比,这仅显示您的更改。这仅显示了它们与 A 相比的变化。

如果更改位于不同的代码行,则从 B 和 C 获取。如果更改位于相同的代码行(冲突),则从 B 或 C 获取。

于 2017-10-05T05:56:03.663 回答
3

如果我这样做了git rebase,我的观察结果是:C - 是本地my_branch中的内容(即在 rebase 开始并发生冲突之前在我的编辑器中看到)。B - 分支,我将 my_branch 重新设置在(例如 master 分支)之上

于 2018-04-06T20:31:31.627 回答