构建树错误时出错会阻止提交分支

Jor*_*n H 5 git version-control

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

工作副本"app name"无法提交文件.
错误:无效对象100644
888688965 ... for"Supporting Files/animage.png"
错误:构建树时出错

我搜索了Interwebs的解决方案,发现这个问题似乎是同一个问题.我尝试了这个问题的两个答案,但都没有为我解决问题.我已经做了我能想到的所有事情来解决问题,但没有成功.

  • 我试图找到有问题的文件作为答案建议,但/repo/.git/objects/88中没有文件.我也查看了备份(我有每小时的Time Machine备份),但该文件夹中从未有过文件.
  • 我试过git reset --hard,这删除了未提交的更改,但在这样做后,我无法进行简单的更改.显示完全相同的错误消息.
  • 我试图删除错误消息中引用的图像,但是下次我尝试提交相同的错误时会显示引用不同的图像.在废弃所有图像后,它开始列出代码文件.
  • 我尝试创建一个新分支并提交到该分支,但是会出现相同的错误.
  • 我切换到我以前在这个项目上工作的其他分区(文件在Dropbox上同步,这可能是导致问题的原因)并尝试提交只会遇到相同的错误消息.
  • 我最终决定将整个项目恢复到更早的时间点,两个月前我回去之前我甚至做了任何分支,但仍然是一个简单的提交拒绝工作.这让我相信一个外部因素,项目文件夹之外的东西.我知道它当时有效,所以这让我非常困惑.这是出现的错误:

工作副本"app name"无法提交文件.
致命的:无法读取树781d ...

跑完后,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":致命
参考文献/头/ UPDATE1
缺少blob对象"8886889658056c4ce52d46a485933c8df7a4de84":致命
参考文献/头/ IOS的8更新
致命:
在refs/heads/master中丢失了blob对象'8886889658056c4ce52d46a485933c8df7a4de84'

尝试克隆回购后,这是记录的内容:
错误:无法读取appname/Images.xcassets/AppIcon.appiconset/Icon-Small-1.png(86672e7aa0d5ad36563feef30c15a5d31f921802)的
sha1文件错误:无法读取appname的sha1文件/Images.xcassets/AppIcon.appiconset/Icon-Small.png(86672e7aa0d5ad36563feef30c15a5d31f921802)
错误:无法读取appname/Image.xcassets/LaunchImage.launchimage/DefaultPortrait@2x.png(7d97eba35cf392ddb1a705109b721fcd6a20ea29)的
sha1文件错误:无法读取sha1文件appname/appname-Prefix.pch(82a2bb45076d290ce7461b28d5a579e649777779)
致命:无法结帐工作树
警告:克隆成功,但结帐失败.

在这个时候,我愿意做任何事情来防止不得不废弃整个git存储库并重新开始.我不想失去我的分支和历史.我该如何解决这个问题?我有一个项目目录的工作副本,就像我第一次发现错误以及此项目的整个历史记录的Time Machine备份时一样.你能提出的任何建议都表示赞赏.

Von*_*onC 2

一种修复方法是:

  • 恢复到命令行。
  • 克隆您当前的存储库
  • 尝试在该克隆上创建新分支/新提交。

如果您之前推送过存储库,请尝试克隆远程存储库而不是本地存储库。
或者尝试克隆存储库并由时间机器保存。

如果这不起作用,则说明您的存储库已损坏,您可以尝试“树包含重复的文件条目”中公开的一些方法。