【问题标题】:How to restore a corrupted git repository?如何恢复损坏的 git 存储库?
【发布时间】:2012-03-01 21:55:04
【问题描述】:

在我的笔记本电脑硬重置后,在 git 提交后冻结,当我在我的 git 存储库中输入任何命令时出现以下错误:

$ git status 
fatal: failed to read object de02e6d5cd7823ea788429a33583bede09221163: Invalid argument

是否有办法恢复我的 git 存储库?

我没有从以下两个问题中找到解决方案:

编辑:我没有找到导致我的 git 存储库损坏的原因,也没有找到任何恢复它的解决方案......我终于从我的 SVN 存储库中重新开始了一个新的克隆!

【问题讨论】:

  • 这里的第一步是检查您的文件系统。这个错误很奇怪。你是fsck 还是你的操作系统有什么?在你做任何其他事情之前做一个备份
  • 几乎所有答案都假设人们可以简单地从某个不可破坏的远程来源重新克隆。这就是问题所在……如果你起源,并且你被破坏了怎么办?正确的。所以,在这里:git-repair 是一个程序,它将运行git fsck 并努力解决它遇到的任何问题。 git-repair.branchable.com 看起来很有能力,虽然你最终可能不得不从备份中复制(如果可以的话!)对象(你有备份,对吗?),它应该可以通过挽救一切可以节省你很多时间并留给您真正的工作,而不是许多可自动化的任务。无从属关系等。

标签: git


【解决方案1】:

对我来说,以上答案都不起作用。我刚刚重新克隆了我的 git repo,一切都很好。在克隆之前,我打开了所有更改的文件,并在拉取后覆盖了它们。

这就是为什么你应该经常提交:)。

【讨论】:

    【解决方案2】:

    您最近是否将您的存储库推送到 github 或 bitbucket 之类的任何地方?您可以获取另一个克隆并复制对象目录。

    否则:

    查看其中有多少运行:

    git fsck
    git branch -a
    git branch -a | xargs -n 1 git log -1 
    git reflog
    

    使用 reflog,看看你可以从哪一个中成功地做日志。希望只是您的最新提交损坏或其中一棵树。

    希望对你有帮助

    【讨论】:

    • 当然我可以重新开始一个新的克隆,希望我离我的 svn 主干不太远(我的本地 repo 是一个 git-svn 克隆)。但是我想知道这种问题是否可以恢复,它的根源是什么,以避免将来重现它。
    猜你喜欢
    • 2010-12-05
    • 2013-09-11
    • 2012-01-06
    • 1970-01-01
    • 2011-04-06
    • 2015-04-09
    • 2020-10-25
    • 1970-01-01
    • 2014-10-21
    相关资源
    最近更新 更多