我假设LOCAL和REMOTE文件正是他们的名字所暗示的,但什么是BASE和BACKUP?
Edw*_*son 148
Git执行三向合并,找到要合并的两个分支的共同祖先(也称为"合并基础").当您调用git mergetool
冲突时,它将生成适合馈送到典型3向合并工具的这些文件.从而:
foo.LOCAL
:冲突的"我们的"一面 - 即你的分支(HEAD
)将包含合并的结果foo.REMOTE
:冲突的"他们"方面 - 你要融入的分支 HEAD
foo.BASE
:共同的祖先.用于输入三向合并工具foo.BACKUP
:调用合并工具之前的文件内容,如果是,将保存在文件系统上mergetool.keepBackup = true
.Fir*_*ald 14
如果将更改从在线存储库中提取(合并)到本地副本中,您可以将 REMOTE、LOCAL 和 BASE 理解为:
REMOTE
= 您的本地文件,包括自己的修改(“在文件系统上”)LOCAL
= 在线存储库中的远程文件('其他用户所做的更改')BASE
= 两个文件的来源(“没有任何修改”)这些术语是从“本地”所指的在线存储库的角度来看的。另请参阅维基百科关于三向合并的文章。
小智 10
根据https://git-scm.com/docs/git-mergetool
当使用此工具调用 git mergetool 时(通过 -t 或 --tool 选项或 merge.tool 配置变量),将调用配置的命令行,并将 $BASE 设置为包含公共基础的临时文件的名称合并(如果有);$LOCAL 设置为包含当前分支上文件内容的临时文件的名称;$REMOTE 设置为包含要合并的文件内容的临时文件的名称,$MERGED 设置为合并工具应将合并解析结果写入到的文件的名称。
然而,rebase 命令和 merge 命令之间似乎存在差异。
合并使用您的本地分支作为 LOCAL,并将您要合并的分支作为 REMOTE
变基使用您的本地分支作为远程分支,并将您要变基的分支作为本地分支