Quick Links

Git is complicated. When you're working in a team, managing unexpected

        git
    

 errors can be a hassle, and you don't want to waste development time fixing

        git
    

 problems when you could be coding. A GUI

        git
    

 client can remedy these issues.

The Command Line Isn't Always Better

First off, we're definitely not saying you shouldn't learn how to use

        git
    

 from the command line. It's important that you're able to execute git basic tasks (fetching, cloning, committing) even when you don't have access to a GUI.

But for more complex tasks, like rebasing, managing branches, and merging, command line

        git
    

 can get complicated, especially when running into unexpected errors. If you've ever stashed your changes and hard reset your branch HEAD to try to fix problems when pushing or pulling, you may want to try using a GUI.

You're likely fixing these problems on your local machine anyway, where you're not locked to the terminal. Rather than having to type in commands to do everything, the basic actions are available as buttons. It's not magic though, you'll still need to know how

        git
    

 works to use one. Fixing merge conflicts will still be troublesome, though the GUI might make it easier to understand.

Even still, take a look at this comparison between the Fork

        git
    

 client and command line

        git
    

. Which one looks like less of a headache?

fork git client
terminal git

The answer is clearly the GUI, a fact which only the most hardcore terminal purists would disagree with. Note, we had to search StackOverflow and run the unwieldy command "

        git log --graph --pretty=oneline --abbrev-commit
    

" for the terminal to even look that nice.

Plus, if you're working in a team of people, you're bound to run into a few who aren't very knowledgeable of

        git
    

. Onboarding a complete newbie will be much easier when they're given a GUI while being taught the inner workings of

        git
    

, rather than dealing with the headache of learning the terminal alongside everything else. Again, you should still teach them to use the basic terminal commands, but you'll run into fewer conflicts if they use the GUI as their daily driver.

Which Git Client Should You Use?

There are a lot of

        git
    

clients---too many to talk about in depth here, and many of them are probably not worth your attention. Instead, we'll show off screenshots of the few good ones, and let you pick which one catches your eye.

Fork is our recommendation. It's free and has releases for macOS and Windows (though Linux support isn't there yet). The main window is clean, with separate tabs for each repository, and a multicolored graph of all the merges and commits in each one.

fork GUI interface

It also features a great interface for resolving merge conflicts (either in Fork or in an external tool), as well as an interactive rebase feature that enables you to reorder or squash commits when rebasing branches:

fork interactive rebase

And, if all else fails, it's got a dedicated button to open the current repo in your default terminal.

Another option is Sourcetree, built by Atlassian. It's a free fully featured

        git
    

 client with some extra integrations for BitBucket, Atlassian's Github competitor. It features the same graph interface for browsing the commit history, as well as a tab for browsing different branches.

sourcetree GUI

It's got buttons for opening the repository in Finder/Explorer, as well as your default terminal. It also has builds for macOS and Windows, though Linux isn't supported.

Next up is Github Desktop. It's certainly not as feature-rich as some of the other clients, but it seems to be designed around a specific use case: working on open source projects. Switching repositories is easy, as well as switching branches within repos. The commit history is displayed as an ordered list, with the main window being a different view of each commit's changes.

github desktop GUI

You'll likely spend a lot of time creating pull requests when working on open source projects. The app makes this simple---pressing Command+R will create a new pull request for your commit, or open the corresponding pull request on Github itself.

Github desktop has releases for macOS and Windows but no official release for Linux. It is based on Electron though, so there is a third-party Linux port available.

Lastly, we have GitKraken, a premium

        git
    

 client, with full support for macOS, Windows, and Linux. It costs $49 per year, per person for the team version, though there is a free version for individual use with public Github repos.

It's certainly premium though; the user interface is wonderfully crafted, and even shows tiny profile pictures in the graph view.

GitKraken main window

It has integrations for GitHub and Gitlab (including self-hosted Gitlab), as well as their own issue tracking service, called Glo Boards. This does seem to essentially just be Trello, but it's included with GitKraken license, so it's nice to have in the same interface.

GitKraken Glo Boards

The Github integrations include being able to update and sync Github issues and milestones all from within the app itself, as well as automating Glo Board actions in response to pull requests status updates.

It seems to be worth the money, so if you do a lot of work in Git and want a premium client, you should give their free version a try. They also have a 7-day free trial of the Pro version, if you'd like to test it out with private repos.