繁体   English   中英

Magit无法识别git存储库

[英]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-executableMx: 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM