
Rise of the Mac Git GUIs - shawndumas
http://fuelyourcoding.com/rise-of-the-mac-git-guis/
======
michaelbuckbee
The fact that I prefer a GUI for source control management (Tower for Git and
Versions for SVN) probably marks me as a lightweight, but I've found them to
be valuable for 2 reasons:

1\. I write better commit messages when I use them because they spellcheck and
it just _seems_ like I ought to use proper punctuation and capitalization.

2\. Having a one keystroke / button diff from the previous version offers a
good sanity check to myself and helps me catch stupid errors from being
committed to source control.

That being said, I still usually end up using a mix of the GUI and command
line for some of the other features.

~~~
drdaeman
As for #1, when you do `git commit` it launches your $EDITOR (at least on
GNU/Linux, I've never owned a Mac), which should spellcheck for you.

~~~
telemachos
Yup, on OSX I do this:

    
    
        export GIT_EDITOR='mvim -f -c"au VimLeave * !open -a Terminal"'
    

It nicely returns focus to the terminal window that launched MacVim (i.e. Gvim
for OSX) after you save and close the commit message.

------
mccutchen
I'm sort of fascinated by this, but out of all the git GUIs I've tried on Mac
except for GitX work backwards from how I want/need them to work. I live at
the command line, but I do like having a nice GUI for staging commits and
viewing history.

GitX works perfectly for me in this regard. It's simply `gitx -c` from the
current directory to open a nice GUI for staging files (or pieces of files)
and composing a commit message or `gitx` to view the history of the current
repo. And it's _fast_ , so launching it does not get in my way too much.

All of the other ones I've tried have had poor command line integration and
wanted me to tell them about my repos ahead of time. I guess maybe that
reflects the needs/workflow of the majority of people who want a nice OS X GUI
for git, but it doesn't work at all for me.

Just sort of interesting.

~~~
blasdel
Thank you, that's exactly what I've wanted! Just a GUI for the commands where
a mouse is useful and UIs based on prompts or ncurses fall down.

I've never found myself wanting "iTunes for your git repos" nor could I figure
out why anyone would ever want that.

~~~
mccutchen
"iTunes for your git repos" is a great way to describe some of this software.
Well said.

------
dchest
I only used git GUIs for nice graphs, but now I have this in my ~/.gitconfig:

    
    
        [alias]
            graph = log --graph --all --pretty=format:'[%h] %s (%ar)'
    

and typing "git graph" gives me a nice text-only graph with short commit
messages: <http://i.imgur.com/pXfWD.png>

~~~
mathias_10gen
You may want to try tig ([http://gitready.com/advanced/2009/07/31/tig-the-
ncurses-fron...](http://gitready.com/advanced/2009/07/31/tig-the-ncurses-
front-end-to-git.html)). The main view has the same info (may have to hit g to
see the graph), plus it lets you drill down into each commit. All without
leaving the comfort of your terminal.

~~~
zacharypinter
I like tig, but my main use for a git gui is to manage my set of staged files
(when I'm not adding everything), and for some reason tig doesn't let me
discard untracked files (I can either add them or leave them untracked).

Anybody know a workaround? I suppose I should figure out how to patch it and
send a pull request.

------
pieter
Cool to see mine still mentioned :) I'm happy that others are continuing the
good work

~~~
weaksauce
Out of curiosity, why did you stop working on gitx? I love gitx and use
brotherbard's branch for the easier remotes amongst other features.

~~~
bonzoesc
I'm going to guess it's the same reason as always, a desire to not donate
night and weekend time to that particular project anymore.

~~~
pieter
That's pretty close. In reality, I started working at a company where I was a
fulltime Cocoa programmer. Working on a similar project in my free time just
didn't seem that attractive anymore.

~~~
weaksauce
Have you considered "blessing" another branch, adding a supplimentary commiter
or pulling in changes from one of the other branches so that the mainline is
more up to date with a compiled binary? In any event I appreciate your tool
and thank you for doing it!

It's probably my ignorance of github but there really does not seem to be a
great way to pass the torch on or see what the other forks have done without
going into each fork.

------
rimantas
A couple of notes: Article is from Decmember 2010, Git Tower is now longer in
beta. Also Xcode 4 is out with built-in Git support. Not sure if it counts in
this context, but worth mentioning anyway.

------
jamesgeck0
OS X has some great Git GUIs, and Linux has a few good ones, but there don't
seem to be many polished ones for Windows? I use Git Extensions, but it feels
a bit rough compared to TortoiseHg. Does anyone know how TortoiseGit is coming
along?

~~~
danieldk
My significant other was very happy with SmartGit on Windows before she
switched to Mac. (Since SmartGit is a Java application, it should work on all
platforms with the JRE and git.)

------
iaskwhy
Asking friends about git GUIs I found out a strong correlation between not
using a GUI for git and not using proper commits[1]. I feel sad when I hear
the words "Oh, I just commit everything!"

[1] By proper commit I mean one where you have a proper commit message per
file (or group of files) per purpose and not just a commit message for all the
changes you made during your daily work hours.

------
dantheta
One thing I am curious about (genuinely curious!) is how so many of the mac
git GUIs are closed-source and/or paid apps. The original CLI git client is
GPLv2, IIRC.

Are the mac clients calling the git command line tool, have they re-
implemented the git file manipulation routines, or are they using some other
means of manipulating the repository files?

I'm just interested to know which approach they chose.

~~~
tzs
Note that git is designed for people to build things on top of it, including
GUIs, by using the command line tools. The git commands generally come in two
flavors, called plumbing commands and porcelain commands. The later are what
users of git are meant to see. Their interfaces are not necessarily stable.
The later are kept stable and often have input and output designed to be
machine friendly.

There are plumbing commands to do very low level repository manipulation,
perfect for GUIs to use.

------
ZoFreX
While we're on the topic of GUI DVCS clients for the Mac, does anyone have any
recommendations for Mercurial? The last one I tried didn't have serve
functionality nor provide a commandline client...

~~~
phillco
MacHg is pretty good.

------
SpiralLab
Just an update: GitMac is now out of beta and called Sprout on the Mac App
Store <http://gitmacapp.com/sprout>

------
geoffw8
Aw man, git tower has a very, very nice website.

