Is it better to use GitKraken or SourceTree for Git?

Ghassen Rjab
satoripop
Published in
5 min readOct 11, 2017

--

GitKraken and SourceTree

Recently, in satoripop, I led a workshop about Git aiming at introducing its best practices, demonstrating GitFlow and showing how we use it in our workflow.

When preparing the workshop, I opted for SourceTree and GitKraken for demonstrations as both are the most used GUI tools in satoripop. I, also, used the CLI as well, so that every developer knows what’s happening behind the scenes when using their favorite GUI.

By doing so, I discovered that SourceTree and GitKraken are two apps that can live alongside and there is no need to choose between the two of them.

In this article, I’ll compare them one to the other and show you the benefits of using them both together.

UI/UX

When comparing their UI/UX, GitKraken has clearly the upper hand.

In GitKraken’s main interface, we have everything we need. In the left panel, we have information about the project, such as local branches, the remote repositories added to the project and their branches, stashes, tags, and submodules. The project’s history and the work in progress are in the center, and we can see stashes too. In the right panel, we can see details of any commit we select from the history, we can also stage, unstage, discard and ignore files from the work in progress and make commits from there, too. At the top, we have the search button that we can use to look for commits.

GitKraken’s UI/UX

All these features exist in the main interface, which makes it a great experience to work with GitKraken.

When looking at SourceTree we can feel that the UI is more organized, as it is based on three views: the first one ‘File Status’ view, where we can stage, unstage and discard changes and make new commits; the second view‘Log / History’, where we can find the project’s history; and the third view ‘Search’, where we can look for commits. Besides, there is a left panel that is almost identical to GitKraken’s which contains information about the project too.

SourceTree’s UI/UX

But this organization in the UI will make your UX a bit frustrating as you’ll always need to switch between these three tabs to get your work done.

When switching between projects, SourceTree’s UX is better than GitKraken’s as you’ll find yourself only one click away from switching projects thanks to the projects’ tabs on top.

Switching between projects in SourceTree

In GitKraken, however, you’ll need to open your list of projects and choose the project you want to switch to.

Switching between projects in GitKraken

Speed/Responsiveness

Furthermore, in this category, GitKraken comes best.

When doing local git work such as making commits, creating and merging branches or even working with your remotes like fetching from or pushing to the project’s remotes, GitKraken feels like twice faster than SourceTree.

When making changes to your project, GitKraken will instantly recognize these changes.

GitKraken’s responiveness

Whereas, when using SourceTree, sometimes you’ll need to refresh the UI by yourself in order to make it recognize your changes.

SourceTree’s responiveness

Features

Here is when SourceTree is the winner.

With SourceTree we can create and apply patches, something that is completely missing in GitKraken. This feature is very useful as many open source projects get contributions through submitted patches such as Linux and Drupal. In addition, Git LFS is stable in SourceTree, however, in GitKraken, it is still in beta as of 3.1 version.

There are two other features that I, personally, like in SourceTree. The first one is the checkout commit, in the ‘Log / History’ view of SourceTree. I can right-click a commit and then press checkout on the context menu, by doing so, a detached HEAD will be created on that commit and I will be able to see my project at that exact version. This feature is missing in GitKraken. As a workaround, you’ll need to create a temporary branch based on the commit you want to check out then switch to the newly created branch.

The second feature is, you can do anything to all the files in your project, not only to the ones in the work in progress area. GitKraken introduced in its 3.1 version the ‘view all files’ feature but you still can’t do any operations on the files. It is different in SourceTree, as you can do operations on all files. As for me, the ‘stop tracking’ operation is the one I use very often. To achieve this, you need to go to the ‘File Status’ view, choose to show all file and then right click on the folder/file you need to make operations to, choose your operation and you’ll get your job done.

Making operations to all files in SourceTree

To conclude, SourceTree and GitKraken are two great apps that are both very useful and have many noteworthy features. You can either choose to use one of them or both together in the same project. That won’t cause any problem. If you’d like my opinion, installing and using both is the best choice to opt for. You can use GitKraken as the primary Git GUI tool and when you need to cover some use cases switch to SourceTree.

--

--