簡體   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