The approach of every single Git app that I've encountered is to present the history as the entry point to working with a project. Maybe I'm a weirdo, but that's not how I primarily work with git, and while having such a history view is critical, I'd like a tool that actually doesn't do that as its main mode of operation.
Instead, I'd like a tool that has a file-oriented approach. Which is to say that it should show uncommitted changes as a file tree browser that either shows the entire tree (with icons, colours or whatever to indicate what is changed) or the subset which has changed. This should be a tree browser where you can click on a single file to view its diff.
The other thing that these Git apps do badly is diff display. Sublime Merge can be forgiven for doing a simple colourized vertical view in its first public release, but other tools can't. The best diff browser I've seen is Eclipse (which I haven't used in a decade, but still miss at times), which coincidentally implements the same UI metaphor. Take a look at this screenshot:
https://i.ytimg.com/vi/-Jdu__jEnFw/maxresdefault.jpg
Note the left pane, which is the file tree. It's only showing changes.
Note the top right panel, which shows a semantic change tree of your file. If Eclipse understands the structure of your file, then it can show the changes by class, method and so on. It's really nice.
Thirdly, note the diff view, which is a side-by-side view which is visually really good at correlating blocks of changes. Many side-by-side differs will keep the two views vertically synchronized by inserting blank space. Not Eclipse! There's no blank space; instead, Eclipse uses the Bezier lines to indicate which block on the left side corresponds to the block on the right side, and these lines are updated as you scroll. Here's a video from someone using the UI:
https://youtu.be/KfeqnernMmE?t=807
Eclipse isn't/wasn't a beautiful app, but it nails the diff view.
The important thing is that you don't get the entire project diff in a single view, which is what Sublime Merge does if you go into either the "unstaged files" panel or a commit, but you get a concise file overview, and only see the diff for one file at a time. Doing it the way I describe above doesn't preclude being able to see the diff for a whole tree in a single pane, but it shouldn't be the default.