So I hear that git is a usability disaster....

I recently moved from CVS to git for libopenraw. So far so good, efficient and productive. But, I just lost a bunch of changes... because of bad usability.

Here is how to not proceed (proceed if you want to lose changes).

From a master git repository, create branch A and branch B in two different directories using git clone Do some changes in A, and leave them there. Do some changed in B. Commit. Push. Changes in B. Commit. Push. Preferably some change are made in similar files as the uncommitted changes in A. Now return to A and pull. Wrong! It will let you do that, but it is dangerous and might end up reverting some change pushed by committing A. Why doesn't git tell me? Big usability problem. (hint, hint. AFAIK bzr allow it, eventually causing merge and conflict (no biggie). bk, the proprietary tool that git is supposed to replace just prevented doing a pull with uncommitted changes).

I would report the bug but couldn't get ahold of the bug tracker. Even the kernel have one...