KDIFF合并中的A,B和C是什么

时间:2010-10-25 20:15:50

标签: version-control merge kdiff3

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

5 个答案:

答案 0 :(得分:69)

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

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

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

答案 1 :(得分:32)

听起来你正在做three-way merge,所以A应该是B和C所依据的基础修订,B是他们的,C是你的(我相信; B和C可能相反,虽然)。

答案 2 :(得分:11)

A是您的父级版本,其中B和C为子级
这意味着B包含通过 user1 / repo1 在A上完成的更改,而C还包含A上的更改但是包含其他用户( user2 / repo2

kdiff为您提供选择从b或c(或两者兼而有之)或父母也选择'A'的修改

答案 3 :(得分:10)

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

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

答案 4 :(得分:3)

如果我git rebase,我的观察是: C - 是本地 my_branch 中的内容(即在rebase启动之前在编辑器中看到并发生冲突)。 B - 分支我在 my_branch 之上(比如主分支) B& A的基础修订版C(在这种情况下对我来说并不重要)