2012-09-30 3 views
14

私はこの混乱にどのように自分自身を持っているのか分かりません。しかし、GitHubに私のリポジトリをプッシュしようとすると、私はerror: object 15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:contains entries pointing to nullに入っています。全押し:押しているときのGitエラー:オブジェクト15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22:nullを指すエントリが含まれています

[[email protected] 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-木は私のsudoのモジュールがnullのSHA1であることを示しています

 
[[email protected] 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 
... 

記載されているsshstdlib、およびsudoは、外部のgitリポジトリのサブモジュールです。フォルダsysctltemplateは、レポのフォルダです。

モジュールを削除して再追加しようとしましたが、今すぐコミットをプッシュするように見えません。私はいくつかの検索をして、エラーで少しを見つけました。このエラーを解決するにはどうすればよいですか?

+0

あなたのレポが壊れているようですが、fsckを試してみてください。バックアップや他のクローンをやり直してください。 – CharlesB

+0

'git fsck --full'を実行すると、何も返されません。私はfsckに何もないと仮定します。 –

+0

バックアップが必要です。 – CharlesB

答えて

7

私はこの問題を最終的に解決することができました。ここで私はそれを解決するために何をしたのですか:

https://help.github.com/articles/remove-sensitive-dataにはの見出しがあります。からファイルをパージしてください。私はRakefileを除去するためのそれらの例を以下ではなく問題のフォルダを使用する:

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch modules/sudo' --prune-empty --tag-name-filter cat -- --all

問題ツリーはIコマンドに-rを追加したフォルダであったので。その結果、sudoのmodilesのすべてのコミットがクリーンアップされ、オブジェクト15abe3addde5ad5f7d25e8f0f220d2e9faf3cb22が消えました!変更のコミット後、プッシュは成功しました。私は後で、壊れたモジュールを問題なく再追加することができました。

0

github repo(bare)を別のローカルディレクトリに複製してみてください。 これをリモートとして追加し、そのリモートにプッシュしようとします。 これが失敗する場合は、おそらくローカルに問題がある可能性があります。

私はまだあなたの "作業レポ"をクローンし、そのクローンから以前に追加したローカルのリモートにプッシュしようとします。

これで解決できない場合は、github repoの名前を変更してバックアップを作成し、新しいものを作成するかgithubサポートに連絡する必要があります。

+1

私は最終的にはGitHubリポジトリを殺して再び作成してからそれを押していたため、これを受け入れます。それはGitHubリモコンの問題でした。私はGitHubのサポートに連絡しましたが、GitHubのサポートはあまり得られませんでした。ただそれを吹き飛ばしてもう一度作るのが最も簡単でした。 –

+0

このエラーが再び発生し、これを試しました。しかし、同じ問題が発生します。 sudoコミットにはnullがあります。私は既存のGitHubリポジトリを抹殺し、新しいリモートにプッシュして同じ問題を解決しようとしました。ローカルのレポを修復することは可能ですか? –

関連する問題