Git 不会等待外部编辑器关闭

问题描述 投票:0回答:1

我一个多月以来一直面临这个问题,并且在互联网上找不到类似的问题报告。

我在 Git 配置中配置了各种编辑器。我使用 Notepad++ 作为编辑器(用于编辑提交消息和交互式变基),使用 WinMerge 作为 difftool,使用 Visual Studio 作为 mergetool。早些时候,当发出 git commit 或 git difftool 等命令时,Git 会等待这些编辑器关闭。现在,相同的命令已经停止等待。由于命令过早退出,因此在 Notepad++ 中编辑的提交消息将被忽略,并且为 difftool 创建的临时文件将在比较修订版本之前被删除。

到目前为止,我已经重新安装和升级了 Git,并重新启动了计算机几次。该问题可能是在清理 PC 上的一些文件/文件夹时引起的,但我不能确定,因为 Git 安装没有受到影响。您能建议问题可能出在哪里吗?另外,如果有人可以分享调试此问题的方法,那就太好了。

目前,我已经删除了编辑器的配置,以便 Git 可以在控制台中打开默认的 Vim 编辑器。另外,我目前正在 Visual Studio 和 Visual Studio Code 中使用 Git 资源管理器进行差异操作,但我想切换回命令行。

如果有帮助,请分享下面的相关 Git 配置:

[core]
    editor = notepad++.exe -multiInst -nosession -notabbar -noPlugin
    longPaths = true
[diff]
    tool = winmerge
[difftool]
    prompt = true
[difftool "winmerge"]
    cmd = WinMergeU.exe -e -u \"$LOCAL\" \"$REMOTE\"
    keepBackup = false
git
1个回答
0
投票

该问题可能是由于 git 与外部编辑器的交互方式造成的,尤其是当它们没有阻止该进程时。检查编辑器配置是否具有阻止 Git 等待的后台执行标志。对于 Notepad++,请尝试将

-wait
添加到 Git 配置中的命令:
editor = notepad++.exe -multiInst -nosession -notabbar -noPlugin -wait

此外,请确保将 WinMerge 和 Visual Studio 配置为阻止 Git,直到该过程完成。

© www.soinside.com 2019 - 2024. All rights reserved.