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.