Source Tree (https://www.sourcetreeapp.com/) is great. Good visual layout of your diffs at any given point with the ability to stage/discard/unstage specific lines from within the program.
On OS X I've been using Tower to great effect. Unfortunately it's OS X only.
Our repo is 4GB and has about 1 million commits.
Source Tree is the only client on Mac I've found so far that doesn't completely grind to a halt on a repository of this size.
It feels like there wasn't much thought about user stories and ux: every git operation was given a button or menu item. Sort of the MS Word phenomenon. Their screenshot on its home page is overwhelming, just like the design of their apps: a hundred items all vying for your attention.
In contrast, GitHub's app for Mac is immediately useful: it makes the 80/20 of git work easy.