6

当我尝试在 emacs eshell 模式下进行 git 提交时:

git commit -a -m "消息"

我收到一个错误:

'c:\Program' 未被识别为内部或外部命令,
可运行的程序或批处理文件。  

同时这个问题在 emacs shell 模式下不存在。如何强制 eshell 与 git 一起正常工作?

4

5 回答 5

4

这似乎是您要执行的程序的目录名称中的空格问题;这个空格似乎没有正确转义。

例如,如果您要执行的是“C:\Program Files\git\git.exe commit ...”,那么第一个空格需要转义,或者整个路径名用引号括起来,否则这一行将是解析为标记“C:\Program”、“Files\git\git.exe”、“...”,第一个标记是要执行的命令。

第一个解决方法是手动扩展全名并将其括在引号中,例如:

"C:\Program Files\git\git.exe" commit ...
于 2009-06-17T11:58:33.883 回答
4

有一个类似的问题,这是针对magit的,(在 MacOS 上)。在您的 emacs 启动文件中添加以下内容:

(add-to-list 'exec-path "/usr/local/git/bin")
(setq magit-git-executable "/usr/local/git/bin/git")
于 2010-04-08T11:26:41.563 回答
2

不知道 git 和 emacs 的具体情况,但是对于其他应用程序,我可以在你的 PATH中Program Files替换它。Progra~1

于 2009-06-17T13:24:37.377 回答
1

我遇到了同样的问题,并通过更改 PATH 使 git.exe (in c:\Program Files\Git\bin) 出现在 git.cmd (in c:\program files\git\cmd,IIRC) 之前“解决”了它。

于 2009-06-17T13:04:42.520 回答
-2

呃,eshell 和 git?为什么?

只需使用 magit 从 emacs 调用 git;它比命令行界面丰富得多。

于 2009-06-17T14:22:04.750 回答