2013-09-22 134 views
6

致命的不是一個Git倉庫(或任何父目錄)git的 是,當我嘗試,我發現了錯誤對我的回購執行任何git操作。 我對我的項目進行了一些更改,這是回購,然後我嘗試通過git狀態來查看我的更改並遇到此錯誤。我谷歌搜索這個錯誤,但沒有取得任何進展。看起來這個錯誤在試圖在repo之外的目錄中執行git操作時最爲常見,而這對於我來說並非如此。 我也試過檢查我./git/HEAD./git/logs/refs/heads這兩者都是空的文件。 ./git/logs/refs/remotes/origin/master也是空的。git的致命不是一個Git倉庫(或任何父目錄)git的

所以從一開始:

  • 我在這個目錄中一臺計算機上進行的Android項目。
  • 我在這個目錄上發起了一個git,並把它發佈到github上。
  • 我遵循常用的在線指南,將此回購協議拖到另外兩臺 計算機上。
  • 在另一臺計算機上進行了一些更改,將更改推送到 回購。
  • 然後在原始計算機上,我成功地完成了更改。
  • 經過幾天沒有在這個項目上工作,我在原計算機上做了一些改動 ,試圖git狀態,併發生這種情況。

回答

6

確保你沒有GIT_DIRGIT_WORK_TREE環境變量在當前會話設置,這將指向一個不正確的文件夾。

如有疑問,請嘗試:

cd /path/to /your/repo 
git --git-dir .git --work-tree . status 

如果還是失敗,嘗試至少從GitHub再次克隆了一個回購協議,並在新的回購添加您最近的變化:

cd /path/to/new/clone 
git --git-dir .git --work-tree /path/to /your/repo add . 

(並繼續在新的克隆中工作)

+0

我不能在我的倉庫路徑中使用任何git命令。任何git命令都會返回「不是回購」錯誤。我還可以檢查我的GIT_DIR或GIT_WORK_TREE嗎? – xyals

+0

@ user2804884是否嘗試了我在我的回答中提到的第一個git命令? – VonC

+1

我試過了,在我的回購路徑中,它返回了有問題的錯誤 – xyals

6

我也有同樣的問題。問題是我的git文件夾被UbuntuOne雲服務同步。它通過添加附加了u1conflict的文件來搞亂文件。而我的.git/HEAD也被當成了.git/HEAD.u1衝突。

你使用git上的任何雲協作服務? Dropbox,UbuntuOne等等。很可能你的.git文件夾在同步過程中可能會搞砸了。

9

在我的情況下,不小心.git/HEAD文件被搞砸了與未知的字符,但.git/ORIG_HEAD文件是好的(它有提交id)。所以,我把.git/ORIG_HEAD的內容複製到.git/HEAD文件中。然後重新啓動IDE(Aptana),一切正常。

+0

當我在計算機崩潰後在.git/HEAD文件中看到一堆NULL字符時,我遇到了這個問題。我注意到的第一個症狀是在看到'git log'失敗,代碼爲128:fatal:Not git repository ...「消息後,歷史記錄中的所有內容都完全丟失。這一順利舉措恢復了一切。 – RacerNerd

相關問題