Best Git GUIs

As we know, right now the usage of Git is quite popular and the Github profile has been name card for the developers. You can create your own project and update it. Also, you can work collaboratively with others with some open-source project. It has been a very convenient development tool for the software developers since its first release.

1. Introduction

Compared with other Version Control Systems, such as SVN (Apache Subversion) and CVS(Concurrent Version System), Git is more powerful. This’s because of its distributed nature, fast operation and branch handling mechanism. The distributed system makes it easy and efficient for multiple developers to work together towards the same project. Git works fast as its lightweight operations. Also every developer can work with the code as its own branch. Others can merge to different branches and this makes cooperation work quite easy. In addition, Git is free and open-source.

In a common sense, Git has various operations through the command line operations. So, someone may attempt to make a better usage of Git, one that should be very familiar with the command line operations.

However, this is not true. The command line works well with non-GUI system, like *nix systems. But for other systems, you may want to operate on the GUIs. This could make your life much easier, without the need to remember so many command line instructions. Luckily, Git provides multiple choices for you.

In this article, I’ll introduce a convenient Git GUI I’ve been using, called GitKraken. In the following example, all are shown in MacOS EI Capitan Version 10.11.5 and the Gitversion is 2.7.4. At the same time, you need to install GitKraken 1.5.2 or higher version.

2. Git GUIs

2.1 Built-in GUI of Git

For Git, it comes with the built-in tools for committing and browsing. For committing, the git gui is a Tcl/Tk based graphical user interface. It allows users to make changes to their projects. This could be achieved by making new comments, making changes to existed files, performing merges, etc. git gui focuses more on commit generation and single file annotation. It doesn’t show the project history. However, it supports menu actions and could work on nearly all systems, like Unix, Mac OS, and Windows.

For the command, you can try with different ones, like blame, browser, citool and version. The blame command could start a blame viewer on the specified file on the given version. The browser command can start a tree browser, which could show all files in the specified commit. The files selected through the browser are opened in the blame viewer. The citool command could start git gui and arrange to make one commit before exiting and returning to the shell. Note this operation is limited to one commit action only. Meanwhile, we can use the version command to show the current running version of the git gui.

Take blame command as an example, we can use the command of git gui blame makefile. This command shows the content of the makefile file in the current working directory. Also, it provides annotations for both the original author of each line, and the one who moved the line to the current location.

For gitk, it’s the repository browser for Git. It could show branches, commit history and the file difference. It’s the utility started by the Repository Visualize actions of git gui.

2.2 Git GUI of GitKraken

Though a built-in component of Git, git gui is not that convenient to use. Luckily, there’s lots of third parties who work on the GUI for Git, like GitX, Gitbox, SmartGit, GitKraken etc. These tools could be working for different platforms, such as Windows, MacOS and *nix systems. Also, some of them are free for usage, which makes them more convenient. The full list could be checked at this link

One of these GUIs is called GitKraken, which is quite powerful and convenient to use. First of all, it’s free. Then, it’s cross-platform and could be used in Windows, MacOS and Linux. Finally, it’s easy to operate on it and connect it with both Git and Github.

You can download it from the official site. Then, install it. Open the GitKraken, and connect your local repository with your Github account. You can go to preferences/authentication/ Then input your Github account user name and password. In the end, you may see successful connection like below:

Git & Github
Git & Github

One feature for GitKraken is that it can scan the Git repository on your local machine. This could be very convenient. Then what you need to do is to go to a specific project, which you want to work on.

For example, you can make a simple readme file and initialize it as a Git repository. Then you may update is for several times. For example, the initial content in the readme file is:

WXMs-MacBook-Pro:GitTreeViewExample WXM$ cat README.txt
Hi there!

Then you can update it and add the name like below:

WXMs-MacBook-Pro:GitTreeViewExample WXM$ cat README.txt
Hi there!

I'm Steve.

Finally, I get something like below.

WXMs-MacBook-Pro:GitTreeViewExample WXM$ cat README.txt
Hi there!

I'm Steve.

Nice to meet you here.

It's easy to use Git.

I'm in a test branch.

I'm in a master branch now.

For the whole process of these updates, you may check out my other post on Git TreeViewer.

One feature for GitKraken is that it can scan the Git repository on your local machine. This could be very convenient. Then what you need to do is to go to a specific project, which you want to work on.
For example, coming back to the previous example. You can see all the information for each commit like below:

GitKraken GUI

In addition, you can also find the basic information for your local and remote repository like below:

GitKraken repository
GitKraken repository

So, with these features of GitKraken, you can easily manipulate the operations of Git.

Meanwhile, the official site of GitKraken provides a cheat sheet for users. You can download it from this link:

3. Conclusion

In conclusion, multiple options could be chosen for Git GUI. You may want to choose one of them and get familiar with it. This could make you Git life much easier. Have fun with the GUIs!

Jun Wu

Jun (Steven) Wu is a current Master student in Computer Science & Engineering department of University of Nebraska Lincoln (Lincoln, NE, USA). His current interests focus on Programming Languages (Java, Python), Relational Database (MySQL), NoSQL Database (Apache Cassandra, MongoDB), and Computer Networks.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button