2013-09-22 114 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

相关问题