为什么 Git config 中的任何引号都被忽略?

4

在 Windows 7 中使用 Git,我尝试通过不同的方式设置文本编辑器:

$ git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe"
$ git config --global core.editor \"C:\Program Files\Notepad++\notepad++.exe\"
$ git config --global core.editor 'C:\Program Files\Notepad++\notepad++.exe'

但是当我查看配置文件(通过命令 git config --list)时,得到的结果是相同的:

core.editor=C:\Program Files\Notepad++\notepad++.exe

因此,我无法提交,会出现错误:

$ git commit C:\Program Files\Notepad++\notepad++.exe: C:Program: command not found error: There was a problem with the editor 'C:\Program Files\Notepad++\notepad++ .exe'. Please supply the message using either -m or -F option.

我尝试手动编辑.gitconfig文件(添加引号),但这并没有帮助我。

为什么引号被忽略了,我该如何解决?

2个回答

7

试试看

git config --global core.editor "'C:\Program Files\Notepad++\notepad++.exe'"

@DAXaholic,这个奇怪的语法有什么原因或解释吗? - Pacerier
在PowerShell和zsh中,双引号会展开变量,而单引号表示字符串字面量。这通常是为什么当在双引号中传递$LOCAL、$REMOTE和$MERGED时它们不会被渲染(终端期望这些是像$PATH这样的环境变量,但您的环境没有它们,因此输出为空白)。这个问题现在已经7年了,所以我相信Git for Windows已经更新了双引号,但我怀疑终端首先渲染(“展开”)双引号中的字符串并打印出结果,所以引号没有被复制。 - A. Hendry
@A.Hendry 我今天刚遇到了这个错误... - bariod
Git for Windows 应该能够接受 ""。今天浪费了一个小时。 - manuell

1
你应该在路径名中使用正斜杠 (/),而不是反斜杠 (\)。
来源:[这里],位于“配置git和助手”下。

我尝试过使用命令 git config --global core.editor "/C/Program Files/Notepad++/notepad++.exe", 但是它并没有对我有所帮助。 - Andrey Bushman
尝试运行以下命令:git config --global core.editor "C:/Program Files/Notepad++/notepad++.exe" - DiJuMx
不,这也不起作用。但是DAXaholic的方法很好用。 - Andrey Bushman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接