我目前正在试图在Win7 64位上使用Emacs 23.1的Magit,但是Magit不能识别我的git存储库。 请记住我是一个完整的Emacs新手。
我运行magit-status命令,它要求一个包含repo的目录,我明显地input了这个目录,然后每次尝试时都会说:“在/ e:/ path / to /目录下没有Git仓库。创build一个?(y或n)“,那里肯定有一个仓库。
有没有人遇到过这个? 我读过,它可能是实际的git.exe不能被发现,我已经尝试搞乱我的pathvariables,但我没有做的是让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 )来执行此操作。
希望这可以帮助!
干杯,丹尼尔
发现了这个问题,它是用于逃避Windows无法处理的可执行文件的魔法转义函数。 在检查我以前安装的代码之后,很明显他们已经改变了代码而不改变版本,不好的! 这是一个修复这个bug的补丁:
--- 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))