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?
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.
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:
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.
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.
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.
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.
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.