

But they each have their strengths and weaknesses.

I have found SourceTree to be the best GIT GUI for me, at any price. And there's also a "copy commit hash" menu item, which is useful for starting an interactive rebase on the command line.

Fortunately the contextual menu has a Copy command that does the job. The one bug I currently know about is that if one selects text from the commit info pane and types ctrl-C, it ignores the selection. It has occasional cosmetic bugs, and Atlassian can be slow to fix those. Overall I have found it to be quite robust. But occasionally I just want to say "use my local copy" or "use the remote version" and in that situation I find it difficult to know which is which. Its merge conflict support is just fine for working through a file line by line: you can use any 3-way merge tool, such as Apple's FileMerge. One weakness is resolving merge conflicts using "Theirs" or "Mine". SourceTree can also show the text of an annotated tag - and that is another thing that few, if any, other GIT GUIs can do.Īlso I find the history layout very efficient: a single window shows commits, uncommitted changes and the diff between any two commits (or your uncommitted changes and any commit). And it does this in a very natural way: the current state is a node, just like each commit. SourceTree is the only GUI I have found that can show the difference between uncommitted changes and any commit. I have tried Tower, Fork, Sublime Merge, and several others. SourceTree continues to be my favorite GIT GUI, especially for viewing history and changes (which is my main use for a git GUI I use the command line for most other things).
