I'm not sure how I have got myself into this mess. But I am running into error: object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:contains entries pointing to null when trying to push my repository to GitHub. The full push:
[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 [email protected]:andyshinn/puppet.git ! [remote rejected] ganglia -> ganglia (unpacker error) ! [remote rejected] master -> master (unpacker error) error: failed to push some refs to '[email protected]:andyshinn/puppet.git' Everything up-to-date
Git ls-tree shows that my sudo module is a 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 ...
The listed ssh, stdlib, and sudo are submodules of external git repos. Folders sysctl and template are folders in the repo.
I have tried removing the module and re-adding it and can't seem to push any commit now. I've done some searching and found little on the error. How can I resolve this error?
I was able to finally solve this issue. Here is what I did to solve it:
In article https://help.github.com/articles/remove-sensitive-data there is a heading for Purge the file from your repo. I following their example for removing the Rakefile but used the problematic folder instead:
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch modules/sudo' --prune-empty --tag-name-filter cat -- --all
Since the problematic tree was a folder I added -r to the command. The result was a cleanup of all the commits for the sudo modiles and thus, object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22 disappeared! After a commit of the changes, the push was successful. I was able to later re-add the broken module without issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With