我可以重命名git mergetool中使用的LOCAL,REMOTE和BASE吗?

时间:2010-03-23 23:58:42

标签: git configuration rebase mergetool

让我们说我正在做一个分支到主人的rebase B,并且存在冲突。 git打开默认合并工具,输入3个文件:file.LOCAL,file.BASE,file.REMOTE(它们的命名略有不同,但是LOCAL,BASE和REMOTE都在文件名中,它们是如何区分的)。

现在,根据mergetool手册页:$ LOCAL设置为包含当前分支上文件内容的临时文件的名称; $ REMOTE设置为包含要合并的文件内容的临时文件的名称,$ BASE设置为包含合并公共基础的临时文件的名称。

这对我来说真的没有意义。 LOCAL是分支的当前状态。我迷路的地方是BASE和REMOTE。所以我的问题是:

是否可以让git使用分支名称而不是LOCAL以及除了BASE和REMOTE之外的更有意义的名称?例如,如果分支名称是FeatureX而BASE =主文件中存在的文件,是否有办法让git将FeatureX替换为LOCAL而将master替换为BASE,以便更明显地源于源自何处?在进行rebase时尤其如此。

2 个答案:

答案 0 :(得分:8)

  

是否可以让git使用分支名称而不是LOCAL

我不这么认为,但如果您在mergetool a graphical merge tool中声明,则可以使用您选择的标题调用该外部工具:

(合并工具calll脚本的摘录)

t1="'$4 (current branch)'"
t2="'(common ancestor)'"
t3="'(to be merged)'"

    "C:/Program Files/Araxis/Araxis Merge/Compare.exe" -max -wait -merge -3 -a2 -title1:${t1} -title2:${t2} -title3:${t3} "$alocal" "$base" "$remote" "$result" 

这样,你可以更容易地看出它是什么。

答案 1 :(得分:3)

我不完全确定这个解释是正确的,但BASE将是两个版本的文件相同的点。它可能就是你在Git树中称为“父”的东西。

当他们分歧时,你最终会发现LOCAL和REMOTE相互冲突。