A friend of mine who is getting warmed up to using git on some projects asked me recently what tools I had to recommend in helping with running some of his own, private repositories. This isn’t about github, but instead, just using git on the home network (which isn’t too hard to do)
To be honest, I don’t use many tools beyond the command line for git. Frankly, I used to have a bunch of aliases, but discovered that moving to a new machine (often in the form of cleanly setup VM) required me to do a lot more setup. Instead, I prefer to use what comes out-of-the-box. The only place I vary in this attitude are the following two git alias commands I have in ~/.gitconfig
lg = log –graph –pretty=”format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset'” –abbrev-commit –date=relative
m = merge –no-ff
git lg provides the “railroad diagram” for a repository. It’s a nice visual using colored ASCII art to see the commits and merge history. git m is just a shortcut to support our general policy of not using fast forward merges when merging branches into master. If you can commit the command pattern to your fingers, you don’t even need that.
I have examined gitx and sourcetree, but neither provide a whole lot of leverage above what I can harness from the command line; not like the sort of leverage a good IDE with auto code completion provides. Stuff like the UNIX find command along with “git blame” and “git bisect” are some of the handiest tools I use everyday in tracking down bugs, who submitted them, and what ticket they were issued against (which requires people include bug numbers in commit log messages).