I avoid most git usability issues by using it as SVN.
When something goes wrong I just bork the whole repo and clone it again, then manually merge the last set of saved changes.
When something goes wrong I just bork the whole repo and clone it again, then manually merge the last set of saved changes.
In some bad days I even miss Clearcase.