I've been completely hooked on SourceTree because it facilitates this way of staging content by default.
It works so well that I've completely abandoned git add -p (which was my default), and I'm having a hard time using magit in emacs because of SourceTree. When I'm sorting out a smaller set of changes into separate commit, I can still get away with magit.
git add -p
I do prefer magit for interactive rebasing though, which I do often when I inevitably forgot to stage a hunk in a previous commit.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.