I'm not ashamed to admit that I just really like the GitHub Desktop app. It's super easy to use, integrates nicely into GitHub.com and Azure / GitHub Enterprise which is what 100% of my clients use. It has every feature I need except:
- an easy way to reset but I just switch to the command line for that - it's the only cli command I have to know
- decent submodule support (at least, as of the last time I was on a project that used these awful things)
- decent cherry picking (which I've only had to use when on project with awful merges - like when using submodules...)