如何修复坏的git树对象
我有一个存储库的本地副本,它不再有任何远程关联。 我正试图将此回购协议推送到一个新的遥控器中,但每次我收到以下消息:如何修复坏的git树对象,git,version-control,repository,Git,Version Control,Repository,我有一个存储库的本地副本,它不再有任何远程关联。 我正试图将此回购协议推送到一个新的遥控器中,但每次我收到以下消息: error: Could not read 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790 fatal: bad tree object 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790 我在这里读到了类似的问题,其中一种修复方法是从存储库的其他副本检索此对象或进行硬重置。我不能两者兼而有之,因为我没有这份回购协
error: Could not read 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790
fatal: bad tree object 9eefe9305253b2c039a54cbc8aa22f7f8e6e8790
我在这里读到了类似的问题,其中一种修复方法是从存储库的其他副本检索此对象或进行硬重置。我不能两者兼而有之,因为我没有这份回购协议的另一份副本
有没有一种方法可以简单地删除此提交或其他类型的解决方案,从而允许我将repo推到新的远程保留历史记录?要真正解决此问题,并且不丢失任何数据(前提是该树是唯一丢失的对象,我对此表示怀疑),您可以尝试以下方法:
我有这个问题。重新启动我的电脑实际上修复了它,所以请在做任何其他事情之前先尝试一下。也许我只是运气好,但值得一试 只需退出用于访问git的应用程序并重新启动即可。我为xcode iOS工作。我的git repo位于一个目录中,该目录也位于我计算机上的OneDrive文件夹中。如果您在另一台机器上使用OneDrive,请从该计算机上的repo推送,然后再次从您自己的机器上拉/推送 您不需要远程或“本回购协议的另一份副本”来执行git重置--hard。谢谢,我不知道。我刚做了,但问题仍然存在,导致问题的提交是一个非常老的问题。两种方法:一种是直接查看文件(解压缩内容),看看是否可以修复它。二-找到引用相关树的提交,并对该提交的父级进行硬重置。根据引用相关树的提交,您可能会丢失大量数据。如果提交时间太长,您将丢失提交后的所有历史记录(当然,它仍将在存储库中,但很难访问)。那么:您需要更新的提交吗?我不想丢失更新的提交历史记录。问题似乎是所讨论的文件丢失了,我的意思是我在git文件夹中搜索了9eefe9305253b2c039a54cbc8aa22f7f8e6e8790,但它根本不在那里。问题是当我运行git cat file-p时,文件丢失了。。。我得到以下信息:错误:找不到9E108293BE3997C2D922B4C473A5A28CC737E446那么,您可以手动查看提交。。。但是你很可能需要写一个脚本来帮你完成这项任务。查看此页面以了解文件格式的概述:嗯,树对象的格式非常简单,因此如果您知道自己在做什么,您可以创建一个包含正确字节的文件(当然,要做到这一点,您需要所有条目的签名)。我并不是说这是一个很好的(甚至可行的)解决方案,但有可能考虑数据是否珍贵。这对我来说确实适用于SourceTree。我刚刚重新启动了应用程序,然后就可以推到远程了。