gitg – git repository browser

With the latest release (0.0.6) just out the door I think it’s about time to write a little post about one of my pet projects, gitg. I guess most people will think ‘argh, not yet another git GUI’, but hear me out :)

I was trying to understand git, but found the initial transition (as many other people) a bit hard. So, I thought what better way to learn, then to write a gui client. Born was gitg 0.0.1. The purpose of the project was to provide a GitX like application, targeted at GNOME. It had to be fast, nice looking and generally useful (as you can see in the left screenshot, it loaded the linux repository of 20.000+ commits in under a second).

gitg showing the linux repository

gitg commit view

The latest version which has just been released has quite some features already, including:

  • Show repository history using ‘git log’ syntax
  • Commit mode featuring per-hunk staging
  • Basic fetch/push/merge/rebase functionality
  • Cherry-pick
  • Drag and drop rebase/merge
  • Drag and drop format-patch export
  • View and export repository file tree at any revision
  • Tag support
  • Stash support
  • Basic remotes management

In any case, if you want to give it a spin, it’s a vailable in the latest debian and ubuntu (I don’t know about other distributions), but the version is a bit outdated. For the latest and greatest:

Download: ftp://ftp.gnome.org/pub/GNOME/sources/gitg/0.0/gitg-0.0.6.tar.bz2
File a bug: https://bugzilla.gnome.org/browse.cgi?product=gitg
Get it from git: git://git.gnome.org/gitg
Posted in gitg. 35 Comments »

gitg 0.0.4

I thought it might be a good time to blog about gitg a little. Basicly, gitg is a clone of GitX (a git gui client for OS X written by Pieter de Pie) for GNOME. I initially started to develop it just because it was fun and I needed to learn about git (and writing a gui application for it seemed like a good way to learn it). After having finished the basics like loading and displaying the history, I lost interest a bit. But, with the migration of GNOME from svn to git, I picked it up again and I think by now it has become a really useful application (I use it daily).

gitg was always meant to be fast, and I think it’s pretty decent in loading the history and calculating all the tracks, and it’s pretty too :) . It features two distinct areas, the first being the history view where you browse the history, look at the diff of a specific commit, etc.

gitg history showing git history

gitg history showing git history

The other view is the commit view where you can easily stage changes in files, or hunks by simply clicking in the diff view.

gitg commit view

gitg commit view

So, just released 0.0.4, which includes really cool stuff that enables you to merge, rebase, apply items from the stash by drag and drop, or by context menu. You can manage your remotes, fecth the latest objects. Create a new local branch from a remote branch, or push a local branch to a remote branch. You can now also create and remove tags. gitg is maintained on git.gnome.org and GNOME bugzilla. So please give it a try and let me know what you think :)

For some more screenshots: http://www.icecrew.nl/files/gitg/
Git: http://git.gnome.org/cgit/gitg
Downloads: ftp://ftp.gnome.org/pub/gnome/sources/gitg/0.0/

Posted in gitg. Comments Off