SourceTree went downhill after the last major UI overhaul and never really recovered. I used to love it for more involved commits (picking apart lines and hunks, etc), but now it's slow and clunky, even on nice hardware.
The main thing I like about SourceTree is that it makes it easy to stage 'hunks', or select lines to stage. I also like that (as with UIs in general) it makes it a bit harder to make mistakes (by, for example, typing the wrong flag on the command line).
But it's become unbearably slow. I really wish they'd fix this.
Do you know about `git add -p`? That allows you to stage hunks or lines interactively in the terminal. Press `s` to split a hunk, `y`/`n` to stage or not stage.
I was aware there was something similar on the command line, but hadn't explored the details. This doesn't sounds as convenient as (a hypothetical responsive) SourceTree, but thanks for the pointers.
I use TortoiseGit on Windows because working with hundreds of repos via the file browser seems more natural to me. Standalone git clients cause too much friction when working with lots of repos in my opinion. They get cluttered with a huge list of repos that I have to organize separately from how they are already organized on my file-system.
With TortoiseGit, when I find a git repo in the file-system and want to start working with it, I don't have to start another program, I can just activate the file browser's context menu with a single keystroke and then I can instantly see all of the Git commands that I normally use. I hardly even have to look at the list of commands though because the next keystroke is usually to hit the letter of the command that I want: (M)erge, (C)ommit, S(w)itch/Checkout, (L)og, etc... because you can customize the context menu to show the most useful commands.
(Disabling overlay icons in TortoiseGit is also a good idea. I typically just delete their registry entries via SysInternals/Autoruns.)
But it's become unbearably slow. I really wish they'd fix this.