0

我正在为一个项目使用 Git。直到昨天晚上,存储库已经启动并运行,我像往常一样在一天结束时关闭了我的计算机。

今天早上,当我像往常一样尝试git status从我的项目文件夹中运行时,我收到了这个错误:fatal: not a git repository (or any of the parent directories): .git

我知道在我今天早上关闭计算机并再次启动它的那一刻之间没有发生任何事情,所以我对为什么存储库会这样消失感到困惑。.git文件夹和.gitignore文件仍然存在于项目文件夹中是毫无价值的。

现在我的问题是,即使我可以在新文件夹中重新检出存储库,我仍然有我昨天隐藏的代码(使用git stash),包括一个 SQL 查询脚本,我花了几个小时编写和其他部分我什至不完全记得它是什么代码,因为我经常使用 stash 来存储尚未准备好提交的未完成工作。

我搜索了互联网,特别是这个地方,发现没有人有同样的问题,这更加奇怪。

4

3 回答 3

2

如果您仍然有\.git子目录,那么您有机会。可能有一个条目已损坏。我不记得 Git 检查了哪些具体内容以确认该文件夹是否是正确的 repo,但这些东西通常可以通过一点毅力来恢复。

先备份一下。然后再使用另一种方法以防万一(.git 通常是隐藏文件)

你的.git目录结构是什么 - 它是否包含所有预期的内容?

您是否有一个遥控器,您可以将大部分内容推送到该遥控器上以进行比较?

更新:请参阅.git/HEAD 的存在是对 git 存储库的辅助检查

于 2012-11-09T19:40:23.257 回答
1

强制性问题:你有备份吗?

如果不是:不好。

如果是:将存储库的备份恢复到不同的目录,检查您知道您正在处理的最新分支/提交,如果该备份中也有存储,请将其提交到新分支。然后用损坏的存储库的源文件覆盖该分支中的源文件。这为您提供了上次未损坏的备份状态和您在此期间所做的任何事情的差异。你也可以把它藏起来。

出于这个原因,我通常会尽早提交,并经常推送到外部存储库作为备份。

于 2012-11-09T10:50:11.680 回答
1

我有同样的问题,但发生的事情是我的电脑在执行git merge.

显然,问题在于 HEAD 文件在关闭后已损坏。解决方案是检查.git/HEAD文件并将内容替换为

参考:参考/负责人/开发

请注意,这develop是我的 PC 关闭之前的当前分支。此外,这可能不适用于所有情况,但值得一试。

于 2018-03-28T17:42:14.007 回答