为什么在我的代码和其他人之间合并时,我有三个选择? 不应该只有我的代码,其他人的代码和下面的输出? KDIFF的文档无法帮助我理解。
答案 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(在这种情况下对我来说并不重要)