I made an alias a while ago I use frequently:
af => !f() { git add -p $(git diff --name-only | fzf); }; f
When you have a large diff, it's get unruly quickly to "add -p".This just prompts you with a fuzzy find of the files that have changed and you can just pick one to go through the "add -p" process for that file.
For the terminal averse, IDEs usually have "jump to next change" and a tab for the changed files that can achieve the same.