当我遇到冲突时,我会使用“git mergetool”来帮助合并它们。但是,当我这样做时会发生什么似乎取决于我的环境,或者可能是mergetool;我很惊讶看到mergetool看起来有多大差异。
有时mergetool会在我运行mergetool时自动合并大部分/全部更改,工具只是说文件X是自动登记的,并且可能让我看到合并的文件来验证它;只有少数文件要求我做出合并决定。其他时候,我似乎被提示甚至容易合并的问题,如更新pom中的版本号。
有时在进行合并时,我会看到<<<<<<<< HEAD和<<<<<<< REMOTE语法,其他时候合并工具将显示更具视觉吸引力的语法。
有时我会在运行mergetool和合并后得到.orig或.remote文件,有时候它们似乎被清理并删除了。
我想弄清楚为什么会有这样的差异。 git是否会让mergetools完成所有这些操作?当我选择合并工具时,我选择的不仅仅是一种可视化冲突的方式,还有一种自动合并和清理文件的方法?或者这些步骤配置不同?例如,我可以在看到与其他工具的冲突时获得自动合并曲折svn使用程度吗?
最相关的基础是,如果我在Linux世界中,如何在没有我介入的情况下获得一个可以自动合并明显变化的工具,这些工具我还没有玩过(例如meld) )似乎这样做,我需要寻找一个特定的工具,还是可以单独配置?
答案 0 :(得分:1)
最相关的是,如果我在linux世界中,如何获得一种无需我干预即可自动合并明显更改的工具,而我以前没有使用过任何mergetools(例如meld) )似乎可以
实际上,在Git 2.29(2020年第四季度)中,“ git mergetool
”的“融合”后端(man)学会了赋予底层的'{{1 }}'''meld
'选项,这将有助于减少需要手动合并的文本量。
请参见commit dbd8c09的Lin Sun (sunlin7
)(2020年5月7日)。
(由Junio C Hamano -- gitster
--在commit 4aff18a中合并,2020年9月22日)
mergetool
:允许--auto-merge
的{{1}}遵循auto-merge
行为帮助:ĐoànTrầnCôngDanh
帮助人:戴维·阿吉拉尔(David Aguilar)
签名人:孙琳
让
meld
后端使用的vim-diff
的行为与“mergetool
”类似,方法是让{{1}时自动合并不冲突的部分并突出显示冲突的部分}}配置有meld
或vimdiff
,用于自动检测mergetool.meld.useAutoMerge
选项。
true
现在包含在其man page中:
auto
给定
--auto-merge
时,meld将合并所有非冲突的 零件自动突出显示有冲突的零件并等待 用户决定。将git config
设置为mergetool.meld.useAutoMerge
会告诉 Git可以将--auto-merge
选项与mergetool.meld.useAutoMerge
无条件地结合使用。 将此值设置为true
可以使git检测--auto-merge
是否 受支持,并且仅在可用时使用meld
。一种 值auto
避免完全使用--auto-merge
,它是 默认值。