I use Gitup. It's rather minimal, but for me has just enough features.
My favorite thing is how easily it manages changesets to include in a commit. Double click to move files between the index and working directory. Also making managing stashes a lot easier.
I find that it's a good balance of features. It saves time on the basis, but I still have to get my hands dirty on the more complicated stuff. Helps me from losing my git skills entirely.
If you're a programmer, then you must use Git (if you don't use any version control system, I highly recommend you do, but that's another story). And if you use Git, try out GitUp ! It's a really nice and fast Git client.
TripMode for when you tether your phone's cell data to your Mac and want to control which apps can use your phone's Internet.
GfxCardStatus to switch manually between your discrete and integrated graphics card (and see what apps are triggering the discrete GPU)
Get Alcatraz for Xcode to easily install plugins and be more productive !
All these features are available in a single sublime plugin. Atom and VSCode even ship with full git GUIs out of the box.
I use a more visual app when I need more than manipulating the working index.
(And yeah, I hit space to open up a visual diff that let's me tab between the files and do a whole bunch of keyboard mashing.)
Graphical tools can be extremely useful in addition to a git shell.
meld -> a simple merge tool (*nix only) http://meldmerge.org/
gitup -> a super lightweight log viewer, autosyncs with git for a very nice experience (*nix only) (http://gitup.co/)
Sourcetree -> slightly heavyweight but full featured GUI that can do most common tasks
none of these are meant to replace the command line but rather, augment it
Learn Git (here's a useful app if you've got a Mac). Because sooner or later you will fuck up, at least I have, and you don't want to mess with stuff you don't know. Other than that: always try first, ask for help if it doesn't work out. Showing you really want to learn helps a lot!