![](/img/trans.png)
[英]why is vc-git and magit in emacs ignoring my git config settings?
[英]Magit not recognising git repositories
我目前正在尝试在Win7 64位上将Magit与Emacs 23.1结合使用,但是Magit无法识别我的git存储库。 请记住,我是一名完整的Emacs新手。
我运行magit-status命令,它要求一个包含存储库的目录,我显然输入了该目录,然后每次我尝试时都说:“ e:/ path / to / directory中没有Git存储库。当肯定有一个存储库时,创建一个?(y或n)。
还有其他人遇到过吗? 我读到它可能是找不到实际的git.exe,并且我尝试弄乱我的Path变量,但是我没有做任何让Magit识别我的存储库的事情。 有任何想法吗?
magit运行以下命令以找到.git
目录:
git rev-parse --git-dir
我首先尝试如果Emacs真的看到您的git
二进制文件。 为此,请在emacs中打开git存储库中的任何文件。 接下来执行Mx: shell-command
并在提示符下输入上述git命令: git rev-parse --git-dir
。
作为输出,您应该得到.git
。 如果您无法将'git' is not recognized as an internal or external command, ...
,则需要确保emacs / magit可以找到git。 您可以通过自定义magit-git-executable
( Mx: customize-variable
)并将其指向绝对路径来进行此操作,或者通过确保git
目录位于Windows PATH中来进行安装(如果使用msysgit ,则在安装过程中会被询问)。
希望这可以帮助!
干杯,丹尼尔
发现了问题所在,是magit-escape-for-shell函数转义了Windows无法处理的可执行文件。 在检查完我以前安装的代码后,很明显他们已经更改了代码,而没有更改版本BAD! 这是一个应该修复该错误的补丁:
--- magit.el.orig 2010-02-19 16:48:43.671875000 -0500
+++ magit.el 2010-02-19 16:49:30.078125000 -0500
@@ -320,7 +320,9 @@
prop val))
(defun magit-escape-for-shell (str)
- (concat "'" (replace-regexp-in-string "'" "'\\''" str) "'"))
+ (if (not (equal system-type 'windows-nt))
+ (concat "'" (replace-regexp-in-string "'" "'\\''" str) "'")
+ str))
(defun magit-format-commit (commit format)
(magit-git-string "log --max-count=1 --pretty=format:%s %s" format commit))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.