15

致命的不是 git 存储库(或任何父目录) .git 是我尝试在我的存储库上执行任何 git 操作时遇到的错误。我对我的项目(即 repo)进行了一些更改,然后我尝试使用 git status 查看我的更改并遇到此错误。我用谷歌搜索了这个错误,但没有取得任何进展。尝试在 repo 之外的目录中执行 git 操作时,似乎此错误最常见,但对我而言并非如此。我还尝试检查我的./git/HEAD./git/logs/refs/heads,它们都是空文件。./git/logs/refs/remotes/origin/master 也是空的。

所以从一开始:

  • 我在一台计算机上的这个目录中创建了一个 Android 项目。
  • 我在这个目录上启动了一个 git 并将它发布在 github 上。
  • 我按照通常的在线指南将这个 repo 拉到另外 2 台计算机上。
  • 在另一台计算机上进行了一些更改,将更改推送到 repo。
  • 然后在原始计算机上,我成功提取了更改。
  • 几天不做项目后,我在原电脑上做了一些更改,尝试 git status 并出现这种情况。
4

5 回答 5

17

就我而言,意外.git/HEAD的文件被非未知字符弄乱了,但.git/ORIG_HEAD文件没问题(它有提交 ID)。所以,我将内容复制.git/ORIG_HEAD.git/HEAD文件中。然后重新启动IDE(Aptana),一切正常。

于 2014-03-24T08:45:10.880 回答
7

确保您没有在当前会话中设置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 .

(并继续在那个新克隆中工作)

于 2013-09-22T19:21:24.780 回答
6

我也有同样的问题。问题是我的 git 文件夹正在由 UbuntuOne 云服务同步。它通过添加附加了 u1conflict 的文件弄乱了文件。我的 .git/HEAD 也被弄乱了 .git/HEAD.u1conflict。

您是否在 git 上使用任何云协作服务?Dropbox、UbuntuOne 等。您的 .git 文件夹可能在同步过程中搞砸了。

于 2013-10-14T15:54:58.670 回答
1

git init解决了我的问题。事实上,没有任何 .git 文件夹

于 2020-05-16T00:41:13.110 回答
0

确保目录/存储库名称与原始名称没有任何变化。我刚刚处理了这个错误,这就是原因。

于 2018-07-19T14:16:12.020 回答