6 Useful Graphical Git Client for Linux

While git has been around for some time, it is only recently that I used it for collaboration with a co-worker. For those who are not aware, git is a distributed version control system with complete history and full revision tracking capabilities. It is a great tool for developers to collaborate without losing their sanity.

In Linux, the most primitive way of using git is via the command line. Once you have installed git (with the command “sudo apt-get install git“), you can use the few commands “git add *“, “git commit“, “git pull“, “git push” to manage your repository. However, the most primitive way doesn’t mean it is the best way. Below are several graphical git client that you can use to make your git usage an easier and better one.

Git-cola is developed in Python and comes with the usual pull, push, commit functions. It also comes with a diff-viewer and file staging mode.

git-cola-main

In Ubuntu, git-cola is found in the repository and can be installed via Ubuntu Software Center, or via the command:

sudo apt-get install git-cola

gitg is a simple application. You can commit changes and view the repositories in graphical display. There is also the diff viewer and a file browser, that’s all. Some people love this as a git viewer because of the colorful graphs and great organization, making it easier to see the changes.

gitg-main

In Ubuntu, gitg can be installed with the command:

sudo apt-get install gitg

SmartGit is a cross-platform java-based full featured git client. It comes with almost everything you need to manage your git repository. You can pull, push, commit, track changes, clone, stage, branch and access remote repo. It also comes with support for GitHub, Beanstalk, Codebase and Unfuddle. Too bad, it doesn’t work with BitBucket, the hosting provider that I am using.

git-smartgit-main

If you are using Ubuntu Oneiric and have installed the OpenJDK instead of the Sun/Oracle Java runtime, you will find that SmartGit won’t run at all. Here’s the fix.

1. Download SmartGit.

2. Extract the tar file to your home folder.

3. Open a file manager and navigate to the bin folder inside the smartgit directory. Open the “smartgit.sh” file with a text editor.

Change the line

#SMARTGIT_JAVA_HOME=/usr/lib/java

to

SMARTGIT_JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk/jre

At the last line of code, change the line:

$_JAVA_EXEC $_VM_PROPERTIES -Xmx${MAXIMUM_HEAP_SIZE} -Dsmartgit.vm-xmx=${MAXIMUM_HEAP_SIZE} -jar "$SMARTGIT_HOME/lib/smartgit.jar" "$@"

to

$_JAVA_EXEC $_VM_PROPERTIES -Xmx${MAXIMUM_HEAP_SIZE} -Dsmartgit.checkIncompatibleJava=false -Dsmartgit.vm-xmx=${MAXIMUM_HEAP_SIZE} -jar "$SMARTGIT_HOME/lib/smartgit.jar" "$@"

Save the file and close it.

4. Lastly, click the “smartgit.sh” file and select Run when prompted.

Smartgit is free for non-commercial use.

Giggle is more of a git viewer. You can view the files and changes that you have previously committed, but you are not able to commit changes or pull/push from/to the git server.

git-giggle

In Ubuntu, you can install Giggle with the command:

sudo apt-get install giggle

Git Gui is lightweight and simple, yet one of the most feature complete git client among the list. When you first run it, it will prompt you to either create a new repository, open an existing repo or clone a remote repo. Once opened, you will be able to view the master and branch changes and history, and the database statistics. You can also stage, merge, commit, push changes to the remote server. It might not have a long feature list as SmartGit, but it is definitely more user-friendly and easier to navigate.

git-gui

Git Gui is available in the Ubuntu repository, so you can install via the command:

sudo apt-get install git-gui

To run it, press “Alt + F2″ and type “git gui” (without the quote).

qgit is yet another git viewer based on the qt framework. If you are on using Gnome, you will find that the interface and icons are very similar to those in KDE (since KDE is based on qt framework as well).

git-qgit

qGit comes with a diff viewer and a revision log viewer, and you can easily switch between both. There is also an Action Builder where you can add and save custom Actions that you use repeatedly. For example, you can create Actions to pull, push, commit the changes rather than doing it on the terminal or other git client.

I am sure there are plenty of other graphical git clients around. What other git client do you use?