当我有冲突时,我会使用"git mergetool"来帮助合并它们。然而,当我这样做的时候会发生什么,这似乎取决于我的环境,或者可能是mergetool;我有点惊讶,它似乎因mergetool而异。
有时,当我运行mergetool时,mergetool会自动合并大部分/所有更改,该工具只是简单地说文件X是自动合并的,并可能让我看到合并后的文件来验证它;只有几个文件需要我做出合并决定。其他时候,我似乎会被提示处理一些容易合并的问题,比如更新pom中的版本号。
有时在进行合并时,我会看到<lt<lt<lt;HEAD和<lt<lt<lt;REMOTE语法,其他时候合并工具将显示更具视觉吸引力的语法。
有时我会得到运行mergetool和合并后剩下的.orig或.remote文件,有时它们似乎会被清理和删除。
我想弄清楚为什么会有这样的差异。git会让mergetools来完成这一切吗?当我选择合并工具时,我选择的不仅仅是一种可视化冲突的方式,还是一种事后自动合并和清理文件的方式?还是这些步骤的配置不同?例如,在可视化与另一个工具的冲突时,我可以获得自动合并曲折svn的程度吗?
基于此,最相关的是,如果我在linux世界中,我如何获得一个工具,在没有我干预的情况下自动合并明显的更改,而我使用过的任何mergetools(如meld)似乎都无法做到这一点,我需要寻找一个特定的工具吗?或者可以单独配置吗?
基于此,最相关的是,如果我在linux世界中,我如何获得一个工具,在没有我干预的情况下自动合并明显的更改,而我使用过的mergetools(如meld)似乎都无法实现
事实上,在Git 2.29(2020年第四季度)中;CCD_ 1"(man)学会了给底层的"meld
"提供"--auto-merge
"选项,这将有助于减少需要手动合并的文本量。
参见林孙提交的dbd8c09(2020年5月7日)(sunlin7
)
(由Junio C Hamano合并——gitster
——于2020年9月22日提交,2018年9月4日)
mergetool
:允许meld
的auto-merge
遵循vim-diff
行为帮助:ần康丹
协助:David Aguilar
签字人:Lin Sun
使CCD_ 10与";CCD_ 11";后端的行为类似于";CCD_ 12";当
git mergetool
3配置有用于自动检测--auto-merge
选项的true
或auto
时。
git config
现在在其手册页中包括:
mergetool.meld.useAutoMerge
当给出
--auto-merge
时,meld将合并所有不冲突的零件,高亮显示冲突的零件并等待用户决策。将mergetool.meld.useAutoMerge
设置为true
告诉Git无条件地将--auto-merge
选项与meld
一起使用。将此值设置为auto
会使git检测--auto-merge
支持,并且仅在可用时使用--auto-merge
。A.false
的值完全避免使用--auto-merge
,并且是默认值。