I got git problem: error: unable to create temporary sha1 filename
when pushing to a remote repository. The fix is rather easy.
On both your local and remote repositories perform the following magic:
git fsck
git prune
git repack
git fsck
The last fsck should not report any problems.