我的项目文件夹不再是Git存储库

时间:2012-11-09 10:45:53

标签: git repository git-stash

我正在使用Git进行项目。 直到昨天晚上,存储库已启动并运行,我一直在关闭我的计算机,一如既往。

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

我知道今天早上我关闭计算机并再次启动计算机之间没有任何反应,所以我很困惑为什么存储库会像那样消失。 .git文件夹和.gitignore文件仍然存在于项目文件夹中并不值得。

现在我的问题是,即使我可以在新文件夹中对存储库进行新的检查,我仍然拥有昨天存储的代码(使用git stash),包括SQL查询的脚本我几个小时的写作和其他代码我甚至都不记得它是什么因为我使用存储来存储尚未准备好承诺的未完成的工作。

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

3 个答案:

答案 0 :(得分:2)

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

先备份。然后使用替代方法以另外一种方式(.git通常是一个隐藏文件)

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

您是否有遥控器可以将大部分内容用于寻找比较?

更新:请参阅The presence of .git/HEAD is the secondary check for a git repository

答案 1 :(得分:1)

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

如果不是:坏。

如果是:将存储库的备份恢复到另一个目录,查看您知道正在处理的最新分支/提交,如果还存在该备份,则将其提交给新分支。然后使用损坏的存储库的源文件覆盖该分支中的源文件。这将为您提供最后一次未损坏,备份状态和您在此期间所做的任何事情的区别。你也可以藏匿它。

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

答案 2 :(得分:1)

我遇到了同样的问题,但发生的事情是我的电脑在执行git merge时意外关闭。

显然,问题是关机后HEAD文件已损坏。解决方案是检查.git/HEAD文件并用

替换内容
  

ref:refs / heads / develop

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

相关问题