229

I am using git for version control of various projects.

Is there GUI software for navigating through commits and branches of a project and for retrieving versions in git projects?

Kevin Bowen
  • 19,615
  • 55
  • 79
  • 83
Matoeil
  • 2,487

13 Answers13

143

I guess you are looking for an easy to use front-end for git.

Take a look at "Graphical Interfaces" section of InterfacesFrontendsAndTools page on Git Wiki. There the following have been mentioned:

  • gitk - graphical history browser, in Tcl/Tk, distributed with Git (usually in gitk package)
  • git gui - graphical commit tool, in Tcl/Tk, distributed with Git (usually in git-gui package)
  • QGit - uses Qt toolkit
  • Giggle - uses GTK+ toolkit
  • git-cola - uses PyQt4
  • gitg - GTK+/GNOME clone of GitX
  • tig - text mode interface for git, is GUI and pager, uses ncurses
  • Gittyup - has a similar layout as GitKraken, but is free and uses Flatpak

Edit: These are the suggestions given in the other answers.

There are a couple of software which I personally find very easy to use.

  • Giggle: I personally use giggle Install giggle . It is simple and intuitive to use.

    screenshot

  • Cola Git GUI: I have not used Cola Git Install git-cola, but this does seem promising.

    screenshot

Coanda
  • 232
  • 2
  • 9
Hashken
  • 6,282
  • 4
    Git has a nice list of GUI Clients http://git-scm.com/downloads/guis I really like the “Only show GUIs for my OS (Linux)” button ;) – Kuchi Jul 25 '14 at 10:32
  • 3
    I know this is an old answer, but I would like to +1 the use of git-cola. The way it handles staged files is the most user friendly of the linux git clients I have tried. – Daniel Oct 19 '15 at 19:34
  • @Kuchi You may be comfortable with some Windows GUI using Wine. Filter by SO is like cutting down your real options. In my experience and in general, Windows GUI are a bit more elaborated. Aside that, SmartGUI is Free and is very helpful. – m3nda Nov 29 '15 at 18:46
  • I'd like to -1 git-cola. I've used a couple git GUIs and this is by far the least feature-rich and intuitive I've used yet. Can't stash individual files, no history support, no ability to change any settings in the GUI (the settings are ready-only). – Josh Noe Oct 08 '17 at 21:04
  • 2
    Eclipse git plugin is easy, clean and organized, worth mentioning it. – Katu Nov 17 '17 at 13:41
  • GitKraken asks to sign in before allowing to do anything. Wanted to use it for local repo. Instant purge. – Daniel Apr 27 '20 at 15:53
  • gitg is the shittiest software on the face of the earth. It crashes every few seconds. – Silidrone Feb 28 '24 at 09:23
27

Having tested all the above mentioned tools, I have settled with the following tools for managing my Git repositories:

SmartGit

SmartGit is an easy-to-use graphical user interface for Git with optimized work-flows. SmartGit supports all Git and Mercurial features needed for every-day work in software development projects:

  • Local working tree operations
  • Status, diff, log
  • Push, pull, fetch (for all protocols)
  • Tag and branch management
  • Merge, cherry-pick, rebase, revert
  • Submodule support
  • Stash management
  • Remotes management

I has also an easy to use wizard to connect you to online repositories like GitHub and BitBucket

enter image description here

RabbitVCS

In contrast, RabbitVCS has a different approach from other tools. Rather than providing an external UI for your git repository, it integrates its self to Nautilus. In fact RabbitVCS is a set of graphical tools written to provide simple and straightforward access to the version control systems you use.

enter image description here

Salih Emin
  • 2,893
  • 3
    RabbitVCS is a waste of time, at least on my Ubuntu 13.10. It almost crashes with every action. https://github.com/rabbitvcs/rabbitvcs/issues/21 – Omid Apr 19 '14 at 18:55
  • rabitvcs has bugs and is not so actively developed – aWebDeveloper Jan 25 '15 at 08:38
  • 2
    SmartGit isn't free for commercial use; GitEye is free, and it's also commercially developed so good quality. – Engineer Sep 27 '15 at 12:30
18

Yes; git has a gui you can run with the git gui command.

If that doesn't work, it means you need to install the GUI for git. You can do this by installing the git-gui Install git-gui package. Or, even better, install the git-all Install git-all package.

sudo apt-get update && sudo apt-get install git-all

See man git-gui for details. Note that while the manpage is called git-gui, you run this as git gui.

psusi
  • 37,551
14

I used gitg for a while before going back to CLI only. For entertainment value, there's gource, which can turn your git history into an animation :)

  • 5
    +1 for gource! Maybe not very useful but definitely cool! – Leo Dec 11 '12 at 08:45
  • Here's how to visualize last 10000 commits for linux kernel. (1) git clone linux repo (2) run git log --pretty=format:user:%aN%n%ct --reverse --raw --encoding=UTF-8 --no-renames -n 10000 | gource --log-format git -a 2 -i 120 -s 1 --loop --padding 1.4 --max-file-lag 1 --user-friction 0.2 - (3) press f or u to hide filenames or usernames – Mikko Rantalainen Oct 02 '15 at 07:43
  • 3
    @MikkoRantalainen Oh yes, how did forgot that simple command :/ – m3nda Nov 29 '15 at 18:49
11

I am quite partial to smartgit. You can read more about it here It's by far the most complete git client on Linux that I have found. That being said, there is real strength in the command line, and I suggest you learn it well before using a GUI.

coteyr
  • 18,288
  • +! for smart git – mreq Dec 10 '12 at 21:49
  • 2
    +1 for learning the command line first. GUIs make it too tempting to "just try that button, reset hard sounds like what I want". – Gauthier Jun 11 '15 at 11:32
  • Plus you get command history and the text feedback does not disappear as easily as a dialog. – Gauthier Jun 11 '15 at 11:33
  • 3
    no free liense for commercial use (well I could lie) and integration in ubuntu is not finalized (.deb). Not deal breaker, but still those are draw backs – Juh_ Jul 22 '15 at 07:04
10

Rather than downloading and compiling the tar.gz file from source(http://www.syntevo.com/smartgit/index.html), there is a PPA on launchpad available that allows one to install smartgit using the normal apt-get commands.

From a terminal (Ctrl+Alt+t), enter the following commands:

sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
sudo apt-get install smartgit 

This will install the latest version of smartgit.

Kevin Bowen
  • 19,615
  • 55
  • 79
  • 83
  • 1
    I've used this approach myself. SmartGit works with GitHub two-factor authentication, which the command-line tools do not, in my experience. Just make sure that when prompted, you tell SmartGit to "merge fetched remote changes" instead of "rebase local branch onto fetched changes". The latter can cause SERIOUS problems if you don't know what you are doing. See the section entitled "RECOVERING FROM UPSTREAM REBASE" on https://git-scm.com/docs/git-rebase . – Stephen G Tuggy Jul 09 '16 at 14:00
10

I'm on the team that develops GitKraken, so I'm a little biased, but I'd highly recommend you check it out. It's cross-platform so you can use the same tool in Windows, Mac and Linux and it comes with some other unique features including undo/redo, indexed search and a responsive, intuitive design. If GitKraken doesn't work for you, I've also used and had some success with Git Extensions (Windows) and GitHub Desktop (Windows/Mac).

Chris
  • 201
  • 2
  • 3
  • 1
    I just installed GitKraken on Ubuntu 16.04 and the first impression is really good. @chris are there any plans to open source this project at some point? – czerasz May 15 '16 at 20:39
  • @czerasz There aren't any plans to currently, though GK does rely on and contribute to several open source projects. Here's some more info about that: https://www.gitkraken.com/faq#faq-open-source – Chris May 17 '16 at 16:11
  • 3
    GitKraken is the best free git gui client for Linux! Thank you very much! VCS in the IntelliJ IDEA IDEs are very good too in case you use their products) – Maks May 25 '16 at 17:59
  • GitExtensions can run on Linux with Mono, I have successfully installed and used it on various Ubuntu versions. – matth Dec 05 '16 at 09:07
  • Does not support Centos / Fedora – Josh Noe Oct 08 '17 at 21:06
5

There is also a relatively new (just released months ago) software called GitEye.

It provides a familiar graphical interface as it is based on Eclipse RCP framework. You can use it on Windows and Mac as well, since it runs on java.

Give it a try; it's free.

So far my only complain is that its merge tool is rather limited

cltsang
  • 151
  • 2
  • 3
  • 2
    Requires registration at 30 days from first use. Very easy and straight forward, great multi-platform solution. – CrandellWS Feb 07 '14 at 04:58
4

ungit seems like a powerful intuitive GUI for git.

0xcaff
  • 163
3

I use git extensions - I find it very helpful for what I need it for. Here's a link to getting it running on 12.04

2

If you are using Emacs (Which is fantastic), then you would find magit a super brilliant option :D

0

I wouldn't ever call it the best git client but I find it noteworthy that Meld also provides some basic version control functionality although it's main purpose is comparing files and directories:

Citing the feature overview:

  • Meld supports many version control systems, including Git, Mercurial, Bazaar and SVN
  • Launch file comparisons to check what changes were made, before you commit
  • View file versioning statuses
  • Simple version control actions are also available (i.e.,commit/update/add/remove/delete files)

Depending on your purpose and workflow it could also be interesting to have a closer look at the version control plugin of your favourite IDE. I used such e.g. in Eclipse, Monodevelop and PyCharm.

Sebastian
  • 604
  • 1
  • 7
  • 15
0

The Cola Git is simple but delivers what it promises, and the SmartGit is full of features!

Patterson
  • 1,360
  • 5
  • 16
  • 26