"git mergetool"做什么,所选合并工具的工作是什么。谁负责自动合并和文件清理?



当我有冲突时,我会使用"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:允许meldauto-merge遵循vim-diff行为

帮助:ần康丹
协助:David Aguilar
签字人:Lin Sun

使CCD_ 10与";CCD_ 11";后端的行为类似于";CCD_ 12";当git mergetool3配置有用于自动检测--auto-merge选项的trueauto时。

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,并且是默认值。

最新更新