Git不再等待Notepad ++完成文件再继续

问题描述

在Windows 10机器上,配置好的git-bash打开的编辑器是Notepad ++。如果在我运行任何需要打开编辑器的git命令(从Windows上的git-bash)时打开notepad ++,则git会在Notepad ++的现有实例中打开该临时文件,但git不会等待。我认为它曾经是。发生了什么?结果是它将继续使用打开的文件中的任何内容。在git rebase -i <commit-spec>的情况下,由于指定壁球的内容从未更改,因此不会造成任何危害。在git commit的情况下,由于没有注释要输入,因此提交被取消。如果您尝试编辑该文件并以任何方式保存它,则会收到一条消息,指出该文件无法保存。 (这是因为git在读回内容并对其进行处理之后已经删除了该文件。)是否有配置设置告诉git使用Notepad ++的新实例?

解决方法

这是我发现有效的方法:

编辑您的Global .gitconfig文件,在[core]部分中,确保editor关键字如下所示:

editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin

这里的要点是我们想要一个新实例(-multiInst),并且由于我们不想在此Notepad ++实例中打开其他内容,因此我们也禁止显示标签栏(-notabbar),以防止出现从以前的会话(-noSession)中打开任何文件,而不必再加载插件(-noPlugin)。

也要注意,它将使用=后面的所有内容,因此引号仅在exe周围出现,并且不包括选项。您正试图告诉外壳程序exe的路径是什么,并且由于其中有空格,因此需要使用引号(或撇号)。

希望这可以帮助其他遇到相同问题的人。

,

Windows

上使用此命令
git config --global core.editor "'C:\Program Files\Notepad++\notepad++.exe' -nosession -notabbar"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...