在git合并冲突中,生成的BACKUP,BASE,LOCAL和REMOTE文件是什么?


122

我以为LOCAL和REMOTE文件就是它们的名字,但是BASE和BACKUP是做什么用的呢?

Answers:


166

Git执行三向合并,找到要合并的两个分支的公共祖先(也称为“合并基础”)。当您git mergetool在冲突中调用时,它将生成适合于馈入典型的3向合并工具的这些文件。从而:

  • foo.LOCAL:冲突的“我们的”一面-即,您的分支(HEAD)将包含合并结果
  • foo.REMOTE:冲突的“他们”的一面-您要合并到的分支 HEAD
  • foo.BASE:共同的祖先。用于馈入三向合并工具
  • foo.BACKUP:调用合并工具之前的文件内容将保留在文件系统中(如果存在)mergetool.keepBackup = true

9
LOCAL是中的版本HEADBACKUP是调用之前在磁盘上的版本mergetool。它可能包含diff3冲突标记,并且您可能在调用之前对其进行了编辑mergetool
爱德华·汤姆森


这里是一个很好的文章,解释合并的情况下,包括三路合并:git-scm.com/book/en/v2/...
qatz

16
LOCAL / REMOTE一词在某种程度上具有误导性,使我认为它们是指“我的更改” /“远程更改”,但实际上通常是在“合并为主控”的情况下,LOCAL是目标分支,是他人的修改,而REMOTE是源分支,这是我的修改。:)
李廷谦

8
他们是...您正在进行基准调整吗?因为两边在底基中是相反的。
爱德华·汤姆森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.