I can not commit a change:
$ git commit
error: invalid object 100644 13da9eeff5a9150cf2135aaed4d2e337f97b8114 for \'spec/routing/splits_routing_spec.rb\'
err
If the problematic file is being added by your change you can just remove it from the index and add it again:
git reset <file>
git add <file>
Easy work around solution, if you're not really concerned on the track of the file, you can duplicate the file and remove the original, commit first the deletion and addition, then rename to original again.
Git should build back again normally
git hash-object -w spec/routing/splits_routing_spec.rb
With this, git will make a Sha1 for the file.
git reset --hard
should bring your repository back to normal, but you will lose uncommitted changes.
In my case, I solved it by:
git reset --mixed