The thing which brought stuff back to normal was to disable the icon overlay cache. I did this using Tortoisegit Settings => Icon Overlays => Status cache: None.
It seems my overlay icons are not updating anymore, which sucks. But it's better than not being able to use Tortoisegit at all.
I can not find any way to clear the whole cache and see if this helps. If you happen to know how to do this, please leave me a comment or email me. Thanks!
UPDATEToday I recieved an email from one of the Tortoisegit Core Developers. We could not track the problem down as I have no crash reports, but he pointed out that
git gcmight help. And it did! Running it in the repository I had problems commiting to solved the issue.
I figured that cleanup is nice to do some time, so I looked for a script. Chris Irish has one at hand:
find . -type d -name .git | while read dir; do pushd "$dir"; git gc --prune; popd; done
And for those of you that run windows (works in cygwin):
find . -type d -name .git | while read dir; do pushd "$dir"; git.cmd gc --prune; popd; done
This iterates through all folders starting with the current one and executes
git gc --pruneif it's the root of a git repository.
If you can reproduce this issue, make sure to get a crash report and to fill a bug report at the tortoisegit issue tracker.