首页 > 解决方案 > Magit 找不到本地安装的 git 版本

问题描述

我正在尝试同时使用 Magit 和 TRAMP,以便从 macOS 笔记本电脑访问服务器上的 git 存储库。

服务器默认为 git 1.7.12,低于 Magit 所需的版本。我已经安装了 git 2.9.5,我可以通过使用通过 TRAMP/my/local/path/bin输入来检查这一点,输出为 2.9.5,如预期的那样。远程 shell 是并且相关的本地路径被设置在.git --versionM-x shellzsh.profile


所以正如建议的那样:

https://stackoverflow.com/a/37886703/3228006

我将以下内容添加到我的 dotspacemacs/user-config:

(require 'tramp)
(add-to-list 'tramp-remote-path "/my/local/path/bin")
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)

然后我按照手册中的建议删除.emacs.d/.cache/tramp,以便流浪者不会尝试重用旧连接并加载 spacemacs。我受到了欢迎:

1 error(s) on startup! Spacemacs may not be able to operate properly.

emacs --debug-init用来寻找原因

Error in dotspacemacs/user-config: Symbol's value as variable is void: path

注释掉我添加的行会删除向我暗示'tramp-remote-path无效的错误。就我的预期而言,这不应该是这种情况,特别是因为我添加(require 'tramp)了确保在访问远程路径变量之前加载了 tramp。

删除require 'tramp并不能解决问题。删除所有三行并执行C-h v 'tramp-remote-path输出(在使用 tramp 进行任何操作之前):

(tramp-default-remote-path "/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin" "/opt/sbin" "/opt/local/bin")

这令人困惑,因为它似乎表明在启动时所讨论的变量不是无效的。此外,我在服务器上编译了一个 emacs 和 spacemacs 版本,如果我登录并在那里使用 magit,它会发现我本地安装的 git 版本没问题,一切都按预期工作。


如果有人能够帮助进一步调试,将不胜感激,在此先感谢。

标签: gitemacsspacemacstrampmagit

解决方案


在我的 /.spacemacs 中发现了一个错字,我在上面粘贴的错误对我来说看起来很狡猾,我意识到这条线:

(add-to-list 'tramp-remote-path "/my/local/path/bin")

实际写成:

(add-to-list 'tramp-remote path "/my/local/path/bin")

注意远程和路径之间的空间。现在已解决此问题,再次删除缓存并重新加载已解决问题。


推荐阅读