gpt4 book ai didi

git - 我如何强制始终显示 mergetool GUI (KDiff3)?

转载 作者:IT王子 更新时间:2023-10-29 01:06:22 27 4
gpt4 key购买 nike

我如何强制始终显示 mergetool GUI 并禁用任何自动解析?

有时当在 merge 过程中发生冲突并且我使用 mergetool 时,它会在我点击Enter 问题“点击返回开始 merge 解决工具(kdiff3)”后立即返回 并且没有显示 GUI,冲突似乎已解决。

我将 Git 配置为使用 KDiff3现在作为 mergetool,但当我将 codecompare 作为指定的 mergetool 时也会发生这种情况。我知道 KDiff3 中有一个选项“merge 时自动保存并退出而不会发生冲突”,这在理论上可能会导致所描述的行为,但我一直禁用/未选中此选项。

另外,在Git mergetool gitconfig中直接有trustExitCode选项,我设置为true,但是即使我设置为false,也不显示GUI。

我不确定谁在自动解析。一些预处理中的 Mergetool 还是 KDiff3?

我在 Windows 上运行并安装了 Git 扩展。

特定于 KDiff3 的类似问题也被问到这里: Kdiff3 won't open with mergetool command

最佳答案

Git 将 --auto 硬编码为 KDiff3 的命令行选项,如果所有冲突都可由 KDiff3 自动解决,这会导致 GUI 不显示。在 KDiff3 设置中,您可以指定要忽略的命令行选项,但是将 --auto 放在那里对我不起作用。

作为解决方法,我将自己的 KDiff3 变体配置为 merge 工具:

git config --global mergetool.kdiff3NoAuto.cmd "kdiff3 --L1 \"\$MERGED (Base)\" --L2 \"\$MERGED (Local)\" --L3 \"\$MERGED (Remote)\" -o \"\$MERGED\" \"\$BASE\" \"\$LOCAL\" \"\$REMOTE\""

这与 Git 默认为 KDiff3 使用的非常相似,但没有 --auto 标志。

现在您可以调用 git mergetool -t kdiff3NoAuto 或将 kdiff3NoAuto 配置为全局 mergetool,KDiff3 将始终在解决冲突时显示。

关于你问题的第二部分,如果你真的想禁用任何自动解析,只需将 --qall 添加到上面的 kdiff3 命令行。但是你必须手动解决文件中的所有更改,即使是那些没有导致 Git 冲突的更改。最好的场景是:KDiff3 展示了 Git 如何 merge 文件并将冲突留给用户选择。

关于git - 我如何强制始终显示 mergetool GUI (KDiff3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15321472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com