Git GUIs for Linux - a quick test
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