我可以为您翻译:在Git合并工具中,我能否将LOCAL、REMOTE和BASE重命名?

13
假设我正在将一个分支进行rebase B到主分支上,并且出现了冲突。 Git会打开默认的合并工具,其中有3个文件作为输入:file.LOCAL,file.BASE,file.REMOTE(它们的名称有点不同,但LOCAL,BASE和REMOTE在文件名中是如何区分的)。
现在根据mergetool man页面的描述:$LOCAL被设置为临时文件的名称,该临时文件包含当前分支上文件的内容; $REMOTE被设置为临时文件的名称,该临时文件包含要合并的文件的内容,而$BASE被设置为包含合并公共基础的临时文件的名称。
这真的对我来说没有意义。 LOCAL是分支的当前状态。我迷失的地方在于BASE和REMOTE。因此,我的问题是:
是否可能让git使用分支名称而不是LOCAL,以及除BASE和REMOTE之外的更有意义的名称?例如,如果分支名称为FeatureX,而BASE = master中存在的文件,则是否有一种方法让git将FeatureX替换为LOCAL,master为BASE,以便更清楚地了解源来自哪里?这在进行rebase时尤其成为问题。
2个回答

9

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

我认为不行,但如果您在合并工具中声明 一个图形化的合并工具,您可以使用自己选择的标题调用该外部工具:

(合并工具调用脚本的摘录)

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" 

那样,您可以更轻松地看清楚每个部分的内容。

3

我不完全确定这个解释是否正确,但是BASE将是两个文件版本相同的点。在Git树中,它可能是您所称呼的“父节点”。

当它们分叉时,您最终会得到LOCAL和REMOTE,它们彼此冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接