git commit stopped working - Error building trees

Solution 1:

This error means that you have a file with hash 13da9eeff5a9150cf2135aaed4d2e337f97b8114, and this hash is not present in .git/objects/../, or it's empty. When this error occurred, I only had this hash in the error, without the file path. Then I tried to do git gc --auto and git reset --hard. After one of these commands (these commands did not fix my problem), I got the path of the file that triggers the error.

You just need to generate the object hash:

git hash-object -w spec/routing/splits_routing_spec.rb

For more information see documentation. In the documentation, there is an additional way of repairing this error.

P.S. This was the only way that was helpful for me.

Solution 2:

You might have a corrupted object in your git repository.

If you have a remote, or other clones of this repository, you could grab from there the problematic file and just replace it on your local repo.

The file you want would be in:

/repo/.git/objects/13/da9eeff5a9150cf2135aaed4d2e337f97b8114

Solution 3:

git reset --hard should bring your repository back to normal, but you will lose uncommitted changes.