GitKraken vs GitHub Desktop

GitKraken vs GitHub Desktop

According to a recent report from Jet Brains, over 90% of developers use Git to manage their code. It is no wonder that so many tools have been created to help make Git easier to use through a graphical user interface (GUI). Previously, we have compared GitKraken, to a number of other approaches, like Sourcetree, TortoiseGit or Fork.

Today, we are going to take a look at GitHub Desktop and see how it stacks up to GitKraken.

Compare GitHub Desktop vs GitKraken

Features GitKraken GitHub Desktop
Basic Git productivity features
1 license for Windows, Mac, & Linux installation
Connect to any Git repo including GitHub, GitLab, Bitbucket & Azure DevOps
Git LFS
Visual commit graph
1-click undo/redo
Command palette
Drag-and-drop to push and pull changes
Predictive merge conflict alerts
Merge conflict tool
In-app pull request management
Built-in text editor
Interactive rebase
Git hooks support
Git flow integration
Connect repos to Jira, Trello, GitKraken Boards, GitHub Issues & GitLab Issues
Team collaboration features
Flexible license management
Multiple profile support
Guaranteed support for paid customers

“Man am I enjoying @GitKraken with dev work. It’s so nice visualizing the branches, changes, commits, and being able to work my entire Git flow through a beautiful GUI.” – @btken

Git vs GitHub

For many, GitHub is synonymous with using Git. It is very common for beginning developers to encounter both of these ideas at the same time and, as a result, perhaps get confused that you need one to use the other, or may even think they’re the same thing. 

It is absolutely true you need Git—the open source version control tool created in 2005—to use GitHub. But you do not need GitHub to leverage Git. With that being said, GitHub.com is the most popular way to distribute Git repositories worldwide, with millions of developers using the tool to collaborate with others. And lest we forget, collaboration is one of the founding goals of Git itself. 

Introducing GitHub Desktop

A few years back, the GitHub team realized that many of their beginner level users were having issues with learning Git via the command line and getting their code pushed to GitHub. In an attempt to answer this need, they introduced their Git GUI in 2015: GitHub Desktop. 

In 2017, GitHub redesigned the application and released it as an open source project called GitHub Desktop 1.0. And let’s give credit where credit is due; GitHub Desktop is a huge step up from the CLI for many users, especially for those who have never touched the terminal before. 

But in trying to provide a path around the CLI, GitHub Desktop seems to embrace some of the limitations of the command line, especially around visualizing version history and branch management. For the most common and simplest Git commands, such as Git commit, Git branch, Git checkout, Git pull, Git push, or Git merge, GitHub Desktop does pretty well. But just like the CLI, once you start working with multiple branches, more complex workflows, and larger teams and projects, GitHub Desktop requires you to keep a lot of things organized in your head as you are working and is not much help in those areas. 

GitKraken vs GitHub Desktop

The GitKraken Git GUI was first released the same year as GitHub Desktop, in 2015, but with a different focus. Instead of just being an easy alternative for Git beginners, GitKraken was born from the needs of our internal development team, who were looking for a better way to visualize Git and solve complex code management problems. Part of the goal of GitKraken was, as Hamid Shojaee put it, “a much better, more visual way to interact with Git and to see the history of interactions.” 

Because it was built with teams in mind, GitKraken was always meant to go beyond just helping users get their code to GitHub.

For teams and growing organizations that are looking for ways to safely and easily use Git in advanced ways, for better productivity and transparency, the robust features of GitKraken is clearly a better standard.

Read more about GitKraken for Teams

Let’s take a side-by-side look at these two tools and you can decide for yourself which wins in the GitKraken vs GitHub Desktop comparison.

Graph View of History and Branches

GitKraken ✅ | GitHub Desktop ❌ 

When you’re viewing a project’s history in GitHub Desktop, you’re looking at a flat list. It only lets you see one branch log at a time. 

While conceptually, a “Git repository is one giant graph“, GitHub Desktop maintains a similar visual style to the CLI. In doing so, the tool asks users to read a list view of their project’s history and manually swap branches to traverse the graph when investigating past commits. 

GitHub Desktop History View

GitKraken, on the other hand, was built to embrace the graphical model and make it easier on developers to understand the project’s history. As soon as you open a Git repository in GitKraken, you can see a project’s history across branches from the clean and color-coordinated graph view.

GitKraken view of a project history across branches

As your team adopts and collaborates with GitKraken, the more productivity benefits you will enjoy. Everyone on the team will know who is working on what, and even avoid Git merge conflicts before they happen! This unprecedented visibility into your projects and team’s efforts will make you wonder how you managed code and collaboration without GitKraken. 

Official Linux Support 

GitKraken ✅ | GitHub Desktop ❌

The GitHub Desktop documentation states: “The following operating systems are supported for GitHub Desktop. macOS 10.10 or later, Windows 7 64-bit or later. You must have a 64-bit operating system to run GitHub Desktop.” However, Linux users can still find a way to make it work.

GitHub Desktop only supports macOS and Windows officially

As an open source project, GitHub Desktop does have a number of forks that can be installed and run on a variety of operating systems. But these are not officially maintained or supported by GitHub, and any issues are subject to their maintainer’s issue queues and resource constraints.

As one of the only true cross-platform Git GUIs on the market, GitKraken is proud to offer official Linux support for the most widely adopted distributions. In the GitKraken documentation, you can see “GitKraken currently supports Ubuntu 16.04 LTS+, RHEL 7+, CentOS 7+, and Fedora 30+.”

GitKraken currently supports Ubuntu 16.04 LTS+, RHEL 7+, CentOS 7+, and Fedora 30+

Cross-Platform Team Consistency

GitKraken ✅ | GitHub Desktop ❌

Developers are an opinionated bunch; each one with their preferred tool chain and local development setup. There are folks who swear by Linux, while others are die hard macOS fans, and Windows seems eternally popular with many. While Git can be run on any OS, the same is not true of all Git GUIs or other development team productivity tools.

Streamlining your team’s workflow means standardizing on a set of best practices, including the tools that make that possible. GitKraken strives to be OS-agnostic and give all developers, no matter their preference of desktop, a way to more easily communicate branching strategy, manage Git pull requests and issue queues. With the introduction of our Git teams features in the 7.7.0 release, users have better visibility into how team members are collaborating, down to a view of who is actively editing which files before they are committed. 💥

GitHub Desktop can help Windows and Mac—and unofficially Linux—users with their basic Git usage, but that is where it ends. Each user is left to their own devices on how to manage team coordination and visibility of issues and pull requests, just as they would be with the CLI.

Built-in Text Editor

GitKraken ✅ | GitHub Desktop ❌

Every developer has their own preferred IDE, be it Visual Studio Code, Sublime Text, Atom, or even Vim. Both the GitKraken Git GUI and GitHub Desktop will let you define your preferred text editor to use when opening a file. However, there are a number of cases where having the ability to make changes directly in your files, while in the midst of your Git flow, is very handy. 

When you need to fix a small typo or other minor change that needs to be made right before committing, or when you are dealing with a Git merge conflict and realize something else is needed in the code. The ability to simply fix it, rather than context switch back to your editor can save time and keep you focused on the original task at hand. 

GitHub Desktop has no built-in editor and requires you to switch back to your IDE and break your workflow rhythm. It might not seem like a huge deal at first, but how often have any of us changed to a new window or tab and immediately got distracted into another task? Maintaining your focus in the same tool leads to better results.

GitKraken integrates the Monaco Editor, the same editor found in VS Code. Making minor corrections or additional edits during a  merge conflict does not require leaving the tool or your current workflow. You could even go so far as to only use GitKraken for all your editing needs if you really wanted to.

GitKraken built in Monaco editor in action

Local File Management

GitKraken ✅ | GitHub Desktop ❌

Most of the time developers will create or delete files through their IDE or file viewer, but there are some occasions when you might want to do so on the fly, in the middle of a Git workflow. In the command line, it is fairly trivial to do a rm or touch while in the middle of the workflow. Given that, it is surprising that GitHub Desktop does not offer any options for file manipulation. 

The GitKraken Git GUI, on the other hand, allows users to quickly add or delete files with a quick right mouse click. Combined with the built in editor, adding the needed file, like a .gitignore or a README does not require you to change your view at all. Similarly, deleting an unneeded file from a project does not require switching applications, helping make every developer just that more productive. 

Alt: the creation of a new file in GitKraken

Merge Conflict Editor

GitKraken ✅ | GitHub Desktop ❌

Eventually, everyone who works with Git runs into merge conflicts. While it would be awesome to avoid them altogether, which is one of the goals of GitKraken’s new Team View features, the reality is, sometimes they happen. How a tool helps us recover from this state is a very important aspect to consider when evaluating which is the best Git GUI out there.

There are a lot of third-party tools built to handle these situations. GitKraken lets you set your preferred merge conflict resolution tool in your settings, so you can easily open it when merge conflicts occur. With GitHub Desktop, you get a pop-up window that gives you the option to open in your IDE, or the command line, but only reminds you that you can open this in your favorite tool of choice as a plain text message. 

GitHub Desktop merge conflict editing options

If you close that window in GitHub Desktop, it drops you into a view that does let you select which lines to keep and which to discard. While there is a side-by-side view (currently in beta at the time of this article), it leverages the default CLI method of highlighting the mere conflict with the “<<<<<<<HEAD” and “>>>>>>>commit-id” notation, which you need to manually select or deselect. This all makes for a less than intuitive experience.

GitHub Desktop visual merge conflict editor which looks just like the command line

Compare that experience with the built-in Merge Conflict resolution tool in GitKraken.

GitKraken Merge Conflict Editor

GitKraken’s Merge Conflict Editor, available in the Pro and Enterprise editions, is an intuitive interface that gives editors the ability to quickly see the side by side comparison of the conflicting lines of code and pick which one they want to use, with a preview of the final change in the bottom panel. Importantly, the winning change is not automatically committed, just staged, so if you need to make a new edit, using the built-in editor, you can do this before you commit the file, all without leaving the UI. 

With GitKraken, you can avoid merge conflicts all together with predictive alerts. ⚠️ That’s right – the GUI alerts you when two people are making changes to the same file at the same time. 🤯

Easy Staging and Unstaging

GitKraken ✅ | GitHub Desktop ❌

GitHub Desktop somewhat obscures the concept of staging. As soon as files in a project are modified, GitHub Desktop automatically stages the items as ready for a commit. While many users likely consider this a plus, it is the equivalent to using git add each time. Convenient in many instances, but a widely considered bad habit, as it means you might unwittingly commit files you forget to list in your .gitignore, or files that are not quite ready to be committed, resulting in even more work managing the repository overall.

GitHub Desktop does allow you to easily unstage work, actively taking things out of the index. However, this reversal of the normal flow can be frustrating to folks who are used to and/or prefer the standard workflow. 

GitHub Desktop automatically staging all modified files

The GitKraken Git GUI makes it very easy to stage only what you want to stage. And, yes, there are a number of times when just staging all changed files is faster and the right thing to do.  GitKraken makes this simple to accomplish with a Stage all changes button. GitKraken also makes it simpler to see what has been changed vs what has been staged, by separating them into different sections, as opposed to the singular list view of GitHub Desktop.

GitKraken unstaged vs staged file view

Drag and Drop Actions

GitKraken 👍 | GitHub Desktop 👎

GitKraken’s graph view and overall visual presentation naturally make performing Git actions through drag-and-drop simple, intuitive and easy. This includes merging, Git interactive rebase, and pushing specific branches to your choice of remote repositories. 

In GitKraken, you can just double click on a branch or commit to select it, and then drag it to the other branch or remote to kick off an action.

GitKraken Drag and Drop in action

With GitHub Desktop, there is no graph view, so it is not immediately obvious what you can drag or where you could drop it. After some experimentation, you will discover you can drag individual commits on top of other commits to attempt a squash. You can also Git cherry pick from one branch to another, but through a rather clumsy interface. That is where dragging and dropping ends with GitHub Desktop.

GitHub Desktop Drag and Drop cherry pick in action

Undo/Redo Button

GitKraken ✅ | GitHub Desktop ❌

We all make mistakes sometimes. To err is human. The ability for a tool to let you quickly undo those mistakes is something worth considering when making an evaluation.

GitHub Desktop lets you undo your last commit by right mouse clicking. This is a serious step up from the command line, which would require reverting a Git commit, and therefore creating a new commit, to accomplish the same thing. But this is where undoing ends. 

GitKraken’s Undo/Redo button is one of our users’ favorite features. This button allows developers to go back in time, undoing mistakes. Missteps like accidentally resetting a branch and losing multiple commits. 😱

Beyond just undoing the last commit, our Undo button allows users to undo:

Similarly, all of these actions can be redone using the Redo button if you undo them by mistake.

GitKraken undo and Redo in action

Mistakes are unavoidable in Git, but with GitKraken’s undo button, you will be able to magically ✨ undo common actions like commit, checkout, delete branch, and more, giving you more confidence in your workflow.

GitHub, GitLab or Jira Issue Tracking

GitKraken ✅ | GitHub Desktop ❌

As one might expect, GitHub Desktop lets users create GitHub issues, but it does this by opening up GitHub.com in a browser and dropping you on the related screen. Admittedly, this is handy when compared to the command line. And this makes sense from GitHub’s perspective; just direct the user to their awesome existing interface. 

Unfortunately, from the user perspective this is a tad disruptive and causes the user to again context switch. Once created, there is no way to see or track your GitHub Issues locally, though GitHub Desktop does give you the option to open up GitHub.com in the browser and you can manage your issues there.

While there are articles on how to integrate GitHub Desktop with other services like GitLab and Azure through use of Access Tokens, there is no easily discoverable documentation on how to integrate with those other issue tracking systems. Again, from GitHub’s perspective, this makes sense as GitHub Desktop was purpose built for GitHub users. But for the user, if your company or project changes forge or service, then it is on the individual developer to figure out work arounds. 

The GitKraken Git GUI was built knowing that Git users have a wide range of preferred task management tools, which is why it offers a very robust issue tracking integration options. 

GitKraken users can easily integrate with issue trackers like:

  • GitHub Issues and GitHub Enterprise Issues
  • Jira Cloud and Jira Server
  • GitKraken Boards
  • Trello
  • GitLab Issues and GitLab Self-Managed Issues

GitKraken allows users to create new issues for these integrations, but it goes further. Users can view, filter, and edit issues/cards. Users can even create branches tied to issues/cards. This can be instrumental for developers looking to optimize their workflow with reduced context switching.

Issue Tracking options in GitKraken

Pull Request Management

GitKraken 👍 | GitHub Desktop 👎

GitHub Desktop does have a path for managing GitHub pull requests, but just like with issues, it is merely a shortcut to GitHub.com where you can create the request. Unlike with GitHub Issues, you can see all of the open pull requests for the repository, though in an abbreviated state. Clicking on a pull request locally merely changes your view to that branch; the comments and details are not populated.

And, as with GitHub Issues, there is no obvious way to integrate the pull request system of other integrations like GitLab, Bitbucket or Azure DevOps.

GitHub Desktop abbreviated view of pull requests

The GitKraken Git GUI has a very robust integration with the leading services, including GitHub. Users can generate new pull requests for any of these services right from the interface, never needing to open a browser window. And, the GitKraken Pull Request View shows the full list of PRs, with the complete details and conversation.

The 7.6.0 release of GitKraken introduced a new built-in GitHub Pull Request View that enhanced the GitHub integration. In addition to creating and viewing PRs on GitHub from the GitKraken interface, users can now: 

  • Edit the GitHub pull request title, description, reviewers, assignees, milestones, and labels.
  • Comment on a GitHub pull request.
  • Merge a GitHub pull request.
  • Submit reviews by leaving a comment, approving the PR, or requesting changes.
  • Check out and test GitHub pull request branches.
  • Link to the build for the PR from the Build Status section.
GitKraken Pull Request View with an open pull request

Git Hooks Support

GitKraken ✅ | GitHub Desktop ❌

One of the most powerful features of Git is its hook system. Those simple text files inside the .git/hooks folder allow developers to automate an unlimited number of actions, triggered by specific events in the Git workflow. 

If you have not embraced this feature yet, consider investigating them, to add error checking, prevent you from accidentally committing AWS secrets, and help you automate many other best practices.

GitKraken supports Git hooks, and even offers a very handy guide on how to get started with Git hooks in GitKraken. Error and warning messages from the hook show up in the GitKraken activity logs and are easy to parse.

Git Hooks messages shown in GitKraken Logs

Enterprise Support

GitKraken ✅ | GitHub Desktop ❌

GitHub Desktop’s open source model means it is completely free to use. While this is fundamentally awesome, it comes with community-only support. Community support is often amazing and to GitHub’s credit, they are active participants who do listen to their community. 

Many large enterprise customers choose the GitKraken Git GUI because we offer Enterprise licensing with direct access to our professional support. Being able to quickly connect to the developers building and maintaining the tooling is extremely beneficial for any team with mission-critical workflows.

Enterprise Account Management

GitKraken ✅ | GitHub Desktop ❌

Since GitHub Desktop is local, open source licensed desktop software, it does not offer any hosted version of their software, nor does it offer team account management or enhanced security options. If part of your team leverages GitHub Desktop for their work, your organization’s administrators are on the hook to manually manage each installation separately. 

GitKraken offers cloud-based, stand-alone, or self-hosted GitKraken enterprise license options to fit the specific needs of various policies. The GitKraken team understands that enterprise teams and organizations need enhanced security and accountability for their tool chain.

This is especially true of teams that require complete control over their user & license management. Organizations that rely on LDAP love the integration with GitKraken. Your administrators will be able to manage licenses for the whole organization, including transferring individual licenses to new team members and customizing requirements for access.

GitHub Desktop vs GitKraken

GitHub Desktop does help a lot of beginning GitHub users leverage GitHub.com quickly and effectively. Beyond that, however, it is very limited in scope and purpose. GitKraken was designed to help teams of developers work more productively, and it succeeds in doing so with the robust feature set allowing you to perform Git actions with more ease, more securely, and with more power.

Seriously, what are you waiting for. Download the best Git client on the market – your workflow will thank you. ⬇️