【问题标题】:Problem using git and Emacs eshell mode on Windows在 Windows 上使用 git 和 Emacs eshell 模式时出现问题
【发布时间】:2010-11-03 15:11:03
【问题描述】:

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

git commit -a -m "消息"

我收到一个错误:

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

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

【问题讨论】:

标签: git emacs eshell


【解决方案1】:

遇到了类似的问题,这是针对 ma​​git,(在 MacOS 上)。在您的 emacs 启动文件中添加以下内容:

(add-to-list 'exec-path "/usr/local/git/bin")
(setq magit-git-executable "/usr/local/git/bin/git")

【讨论】:

    【解决方案2】:

    呃,eshell 和 git?为什么?

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

    【讨论】:

    • -1 Magit 的界面不支持命令行界面所做的一切。例如,它不支持 PGP 签名提交,这对我来说不是入门。
    • Magit 还允许您像在命令行上一样运行命令,因此您可以在 Magit 中使用 git 命令在命令行上执行所有操作
    【解决方案3】:

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

    【讨论】:

    • 错误发生在 git 或 emacs.eshell 内部某处,所以我无法管理
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

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

      "C:\Program Files\git\git.exe" commit ...
      

      【讨论】:

      • 我已经通过将 git 重新安装到 c:/git 来解决问题,所以路径中没有空格
      猜你喜欢
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 2014-01-02
      • 2023-01-01
      相关资源
      最近更新 更多