windows - 操作系统重置后 "Not a git repository"

标签 windows git

今天早上,当我抬起笔记本电脑的屏幕时,我的 Windows 10 崩溃并重新启动。没有特殊事件在进行,所以我认为没有重要的磁盘事件。

但是,我的一个主要 Git 存储库在重置后崩溃了。这是我尝试过的:

  • $ git status 致命:不是 git 存储库(或任何父目录):.git
  • $ git 初始化 重新初始化现有的 Git 存储库在....../.git/
  • $ git status 致命:不是 git 存储库(或任何父目录):.git
  • 循环

我不认为我有未推送的提交,所以从远程删除和克隆应该可行。

不过,在这种情况下,我能问一下如何恢复现有的 Git 存储库(.git 目录仍然存在,chkdsk 报告正常)吗?

[添加]阅读this但不适用于我的情况(我无法恢复 repo 协议(protocol))

最佳答案

作为kabanus said in a comment ,您绝对应该在继续之前尽可能保存任何内容(和/或使用其他一些现有的克隆作为备份)。

不过,当 Git 对此报错时,通常意味着文件 .git/HEAD 已经丢失。如果您创建一个包含以下内容的新 HEAD 文件:ref: refs/heads/master,Git 可能能够恢复所有内容。

由于 HEAD 是存储库中最活跃的文件,因此它是最有可能被操作系统错误或电源故障破坏的文件。当涉及到 Git 是否认为 .git 目录是存储库时,它也是一个关键文件:如果该目录包含名为 HEAD 的文件(以及其他一些关键项),它一个存储库;如果不是,则它不是存储库。

关于windows - 操作系统重置后 "Not a git repository",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40907497/

相关文章:

windows - 将 IIS AppPool\ASP.NET v4.0 添加到本地窗口组

windows - 检查是否使用 PowerShell 安装了特定应用程序

git - VB6 代码行结尾添加到 Git 后会发生变化吗?

git - Emacs Magit 提交打开新的 Emacs 客户端

git - `git log --name-only` 显示合作者

c# - 如何检测当前显示设置(即扩展、重复等)

windows - 无法在Windows 10中通过SSH启动程序

windows - namespace 扩展的图标覆盖处理程序

git - 如何使用 vimdiff 解决 git merge 冲突?

git - 为什么在Eclipse的Egit中Commit是灰色的