Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复坏的git树对象_Git_Version Control_Repository - Fatal编程技术网

如何修复坏的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 cat file-p,查看提交消息的内容(希望它能告诉您更改了什么)
  • 现在,您可以确定所做的更改,并从中推断目录结构
  • 如果3起作用,那么您可以使用文本编辑器和zlib压缩器手动创建树。tee文件中的条目将是其他树对象或BLOB。希望大多数文件和文件夹在两次提交之间共享(没有更改)。这将允许您重用签出提交的树对象中的大多数条目

  • 我有这个问题。重新启动我的电脑实际上修复了它,所以请在做任何其他事情之前先尝试一下。也许我只是运气好,但值得一试

    只需退出用于访问git的应用程序并重新启动即可。我为xcode iOS工作。

    我的git repo位于一个目录中,该目录也位于我计算机上的OneDrive文件夹中。如果您在另一台机器上使用OneDrive,请从该计算机上的repo推送,然后再次从您自己的机器上拉/推送

    您不需要远程或“本回购协议的另一份副本”来执行git重置--hard。谢谢,我不知道。我刚做了,但问题仍然存在,导致问题的提交是一个非常老的问题。两种方法:一种是直接查看文件(解压缩内容),看看是否可以修复它。二-找到引用相关树的提交,并对该提交的父级进行硬重置。根据引用相关树的提交,您可能会丢失大量数据。如果提交时间太长,您将丢失提交后的所有历史记录(当然,它仍将在存储库中,但很难访问)。那么:您需要更新的提交吗?我不想丢失更新的提交历史记录。问题似乎是所讨论的文件丢失了,我的意思是我在git文件夹中搜索了9eefe9305253b2c039a54cbc8aa22f7f8e6e8790,但它根本不在那里。问题是当我运行git cat file-p时,文件丢失了。。。我得到以下信息:错误:找不到9E108293BE3997C2D922B4C473A5A28CC737E446那么,您可以手动查看提交。。。但是你很可能需要写一个脚本来帮你完成这项任务。查看此页面以了解文件格式的概述:嗯,树对象的格式非常简单,因此如果您知道自己在做什么,您可以创建一个包含正确字节的文件(当然,要做到这一点,您需要所有条目的签名)。我并不是说这是一个很好的(甚至可行的)解决方案,但有可能考虑数据是否珍贵。这对我来说确实适用于SourceTree。我刚刚重新启动了应用程序,然后就可以推到远程了。