@b0rk same for 1) and 2) for me, but I prefer to resolve merge conflicts by hand.

I use GitUp.co to handle complex staging needs, a mix of that and Sublime Merge for history, and I also use GitUp for editing branches (as a better interactive git-rebase; you can delete, rearrange, and edit commits without having to do them in a batch, so you get feedback more quickly.)