Git GUIs for Linux - a quick test

published Oct 13, 2013 12:10   by admin ( last modified Oct 14, 2013 12:59 )

This blog post will be amended and expanded later.

Basic level

I want a graphical overview of what files are unknown to git, which are known and has changed, and which ones are staged. I also want to be able to add (stage) files, commit files, and also unstage files.

Advanced level

I have a cheat sheet with the following stuff in it, but would like to have it supported in the GUI:

Feature git-cola smartgit  
Separate staged, unstaged, unedited and unknown files Y Y  
Stage files Y Y  
Commit files Y Y  
Advanced features      
track a new remote branch         
see what would be merged in, before doing a pull (i.e. a git fetch followed by git diff HEAD...origin   N  
initialize a remote repository with my stuff and make my local repository track the remote      
push to a fresh remote repository      
push tags Y    
I made a new branch locally, and I want to push it to remote      
undo my last commit      
Aborting a merge when you are in the middle of it      
revert a changed or deleted file to its last commit      
handle submodules as they are defined in recent versions of git (1.8.2 and higher) N Y  
       

Offerings

Found a page that details some of the offerings:

http://askubuntu.com/questions/227554/best-gui-client-for-git

So a quick test for the basic level:

git-cola - seems to do a lot of the things I want. Distinguishes between tracked and untracked files, shows which files have edits in them. double click to stage file, the best one so far

giggle - does not seem to do much, it does not distinguish between files with changes in them and not, has a context menu for committing any file, wheter changed or not. May be more for inspecting and analyzing.

git-gui - Lumps all files into a long messy list, with no distinction between tracked and untracked files