
If you spend a lot of time coding then it's worth trying several. But they each have their strengths and weaknesses. I have found SourceTree to be the best git GUI for me, at any price. 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".

Last time I tried Tower and Sublime Merge they could not. SourceTree and Fork can both show the annotation for a tag. 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). No other git GUI I have tried does this the others only show the diff between the uncommitted state and HEAD, and you have to change views to see it.

I own Fork and have tried Tower and Sublime Merge.įor me, the standout feature for SourceTree is that it treats the current uncommitted state as just another node in the history, allowing you to easily compare uncomitted changes to any other commit. SourceTree is my favorite git GUI, especially for viewing history and changes (my main use for a GUI I use the command line for most other things).
