我已配置git
(如下所示)vimdiff
作为difftool
,并在我拨打:qa
后立即比较另一对文件而不提示。这很棒。唯一的问题是有时在许多文件中存在差异。如何阻止git
运行另一个vimdiff
实例并继续差异队列?
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
我尝试使用非零错误代码(vim
)退出:cq
,但它无效。
如果答案适用于vim
和nvim
,那会很棒。
答案 0 :(得分:1)
我在不同的堆栈上得到了解决方案:
git config --global difftool.trustExitCode true
git config --global mergetool.trustExitCode true
然后退出:cq
答案 1 :(得分:1)
请注意,您不仅可以将mergetool.trustExitCode true
应用于vimdiff
,而且还可以应用于nvimdiff
。
在Git 2.29(2020年第四季度)中,已经重构了基于vim
的变体“ git mergetool
” ({man)的现有后端,然后添加了对“ nvim
”的支持。
请参见commit 1186897的commit 83bbf9b,pudinha (pudinha
)(2020年7月29日)。
(由Junio C Hamano -- gitster
--在commit 873fa13中合并,2020年8月17日)
mergetools
:添加对nvimdiff(neovim)系列的支持签名人:pudinha
在Git 2.30(Q1 2021)中添加了nvimdiff
中的mergetool
支持后引入的固定回归。
请参见commit 12026f4的commit 6bc9082,Johannes Schindelin (dscho
)(2020年11月11日)。
(由Junio C Hamano -- gitster
--在commit d203add中合并,2020年11月21日)
mergetool
:避免让list_tool_variants
破坏用户定义的设置签名人:Johannes Schindelin
在83bbf9b92ea8中(“
mergetool--lib
:增强对vimdiff风格工具变体的支持”,2020-07-29,Git v2.29.0-rc0-merge 3}}),我们本着Postel法则的精神引入了list_tool_variants
函数:宽容您接受的输入。在这种特殊情况下,我们不仅希望允许bc
,而且还允许bc3
作为“超越比较”工具的名称。但是,此补丁被忽略的是,它完全允许用户覆盖
mergetools/
中的默认设置。
但是,既然我们去除了尾随的数字,那么用户给该工具提供的名称实际上可能不在list_tool_variants
产生的列表中。因此,我们对
diff_cmd
和merge_cmd
进行相同操作:如果检测到用户定义的设置,请使用普通版本覆盖它。