推送时出现Git错误:object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:包含指向null的条目

时间:2012-09-30 05:16:42

标签: git version-control git-submodules

我不确定自己是如何陷入这种混乱局面的。但是当我尝试将我的存储库推送到GitHub时,我遇到error: object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:contains entries pointing to null。全力推动:

[ashinn@puppet1 puppet]$ git push
Counting objects: 27, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (16/16), 5.67 KiB, done.
Total 16 (delta 6), reused 14 (delta 4)
error: object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:contains entries pointing to null sha1
fatal: Error in object
error: unpack failed: index-pack abnormal exit
To git@github.com:andyshinn/puppet.git
 ! [remote rejected] ganglia -> ganglia (unpacker error)
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'git@github.com:andyshinn/puppet.git'
Everything up-to-date

Git ls-tree显示我的sudo模块为null sha1:

[ashinn@puppet1 puppet]$ git ls-tree 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22
...
160000 commit 2cc9d02b3cf27d6a06d85612c03710aa0d90149c  ssh
160000 commit 6961179007dce76d7fb9bd1fc361273acb4129a7  stdlib
160000 commit 0000000000000000000000000000000000000000  sudo
040000 tree 2bd16a8fab440081a876f64d720b5b4d9d119bc9    sysctl
040000 tree 01439b5a20363dccdf3f7103aab701fa7f4b3cd9    template
...

列出的sshstdlibsudo是外部git repos的子模块。文件夹sysctltemplate是回购邮件中的文件夹。

我已经尝试删除模块并重新添加它,现在似乎无法推送任何提交。我做了一些搜索,发现错误很少。如何解决此错误?

1 个答案:

答案 0 :(得分:0)

尝试将github repo(裸)克隆到另一个本地目录。 然后将其添加为遥控器并尝试推送到该遥控器。 如果失败,那么您的问题可能是本地问题。 (这是我的猜测)

如果没有,我仍然会尝试克隆你的“工作回购”并尝试从该克隆推送到你之前添加的本地遥控器。

如果这没有用,你要么重命名/备份你的github repo并创建一个新的或者必须联系github支持。