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.