首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成树错误防止提交到分支

生成树错误防止提交到分支
EN

Stack Overflow用户
提问于 2014-07-28 05:39:49
回答 2查看 7K关注 0票数 7

我的Mac上有一个由Xcode管理的本地git存储库。我最近创建了一个新的分支,从那时起,我做了很多改变。我正要执行对这个新分支的第一次提交,并出现了一个错误对话框:

工作副本“应用程序名”未能提交文件。

错误:无效对象100644

888688965……用于“支持文件/评论”

错误:生成树错误

我在互联网上搜索了一个解决方案,并找到了这个问题,这似乎是同一个问题。我试着回答这两个问题,但都没有为我解决问题。我已尽我所能解决这个问题,但没有成功。

  • 我试着按照答案查找有问题的文件,但是在/repo/..git/objects/88中没有文件。我还查看了备份(我有每小时一次的机器备份),但该文件夹中从来没有文件。
  • 我尝试了git reset --hard,这删除了未提交的更改,但是在这样做之后,我不能提交一个简单的更改。给出了完全相同的错误信息。
  • 我试图删除错误消息中引用的图像,但是下一次尝试提交相同的错误时,会显示引用不同图像的相同错误。在破坏所有图像之后,它开始列出代码文件。
  • 我尝试创建一个新分支并提交到该分支,但也出现了相同的错误。
  • 我切换到我以前在这个项目中工作过的另一个分区(文件在Dropbox上同步,这可能是问题的原因),并且尝试提交只是为了体验相同的错误消息。
  • 最后,我决定把整个项目恢复到以前的一个阶段,两个月前,我还没做任何分支,我就回去了,但还是有一个简单的承诺拒绝工作。这使我相信涉及到一个外部因素,项目文件夹之外的一些东西。我知道那时候起作用了,所以这让我很困惑。这是出现的错误:

工作副本“应用程序名”未能提交文件。

致命:无法阅读树781 d..。

在运行git fsck --full之后,我看到了来自树的几个断开的链接,许多悬空的小块,几个缺失的小块,以及两个缺失的树。

git for-each-ref --format='%(refname)' | while read ref; do git rev-list --objects $ref >/dev/null || echo "in $ref"; done的结果

致命:缺失blob对象'8886889658056c4ce52d46a485933c8df7a4de84‘

参考文献/标题/UniversalStoryboard

致命:缺失blob对象'8886889658056c4ce52d46a485933c8df7a4de84‘

参考文献/标题/最新情况1

致命:缺失blob对象'8886889658056c4ce52d46a485933c8df7a4de84‘

参考文献/标题/iOS-8-更新

致命:缺失blob对象'8886889658056c4ce52d46a485933c8df7a4de84‘

参考文献/主管/硕士

在尝试克隆回购之后,以下是记录的内容:

错误:无法读取appname/Images.xcassets/AppIcon.appiconset/Icon-Small-1.png的sha1文件(86672e7a0a0d5ad36563feef30c15a5d31f921802)

错误:无法读取appname/Images.xcassets/AppIcon.appiconset/Icon-Small.png的sha1文件(86672e7a0a0d5ad36563feef30c15a5d31f921802)

错误:无法读取appname/Images.xcassets/LaunchImage.launchimage/DefaultPortrait@2x.png的sha1文件(7d97eba35cf392ddb1a705109b721fcd6a20ea29)

错误:无法读取appname/appname的sha1文件-前缀. file (82abb45076d290ce7461b28d5a579e649777779)

致命:无法签出工作树

警告:克隆成功,但签出失败。

在这一点上,我愿意做任何事情,以防止不得不破坏整个git存储库并重新开始。我不想失去我的分支和历史。如何解决这个问题?,我有一个项目目录的工作副本,就像我第一次发现这个错误以及这个项目的整个历史的时间机器备份时一样。你能提出的任何建议都是值得赞赏的。

EN

回答 2

Stack Overflow用户

发布于 2014-08-12 06:09:49

一个解决办法是:

  • 恢复到命令行。
  • 克隆当前的回购程序
  • 尝试并在该克隆上创建新的分支/新提交。

如果您以前推动了您的回购,尝试克隆远程回购而不是本地回购。

或者尝试克隆回购,通过时间机器保存。

如果这不起作用,那么您就有了一个破损回购,您可以尝试一些在"树包含重复的文件条目。“中公开的方法。

票数 2
EN

Stack Overflow用户

发布于 2014-08-13 02:00:58

你换过git版本了吗?您只使用Xcode附带的版本,还是在终端中安装了过时的版本?一个可能会腐蚀回购的人。(试试'git --版本‘-- 当前版本是2.0.4,很容易用自制软件安装)。

回购文件夹中是否有阻止git工作的奇怪权限?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24989005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档