Git is Beautiful

Git is beautiful. Especially with Tower, a Git client only available on a Mac.

Repository interfaces

Several years ago, software developers generally decided that Git (or Mercurial) were better repositories than Subversion, in part because branching was cheaper and easier.

I have stuck with Subversion for a very long time because Tortoise gave me a graphical interface on Windows. In contrast, Git practically insists that you to use a command line. I have read comments openly hostile to Windows users who didn’t want to memorize git commands and were looking for a better interface. I have now installed something called Git GUI and I like it better than the command line, but it still feels pretty chintzy.

I have seen the future, and its name is Tower.

I’m currently working at a company that uses Mac computers, and they all use Tower, which is a beautiful, intuitive interface to Git. When I open Tower, I see a list of all the most recent snapshots, along with a beautiful timeline showing the Tree Graph of how we got to the most current top-level snapshot.

Tree graph art, a digression

The tree graph of our workflow fascinates me. The one to the left begins at the bottom when there was a single trunk, and ends at the top when we had all committed our changes back into a single trunk. And in-between are four parallel lines (meaning four colleagues were working simultaneously). There is a riot of branching (when a new colored line splits off), reintegrating (when a spur jumps to a different-colored line, usually left-to-right), and merging (when a colored line ends by joining another, usually right-to-left).

It looks like chaos, but at every point, everyone’s copy of the code worked, and so did the trunk. They just worked differently from each other.

Singing Tower’s praises

I can get a tree graph using “gitk” on my Windows computer, but it’s not nearly as beautiful as the one provided by Tower.

Further, Tower lets me control the repository using right-clicks (creating branches) or drag-and-drop (merging and reintegrating). Fetches, pulls, and pushes are the push of a button on the menu bar.

Of the various other interfaces to Git that I’ve tried, none have been written in an O.S.-native language, which means the interface feels unpolished. Buttons, windows, or scrollbars feel unnatural and somehow untrustworthy. Tower is built as a native OSX app, and it feels solid.

Yes, I have memorized many of the Git commands. I can and do use Git on my Windows computer for some clients, although I prefer SVN simply because Tortoise makes it easy to use.

But if there were a Tower for Windows, I’d convert all of my repositories today. Tower is so good, in fact, that it’s almost worth considering switching from Windows to a Mac.

(And no, I haven’t been paid by Tower to say these nice things. But one can hope!)

This entry was posted in Information Architecture, Repositories, Web programming. Bookmark the permalink.

7 Responses to Git is Beautiful

  1. Martin Mapes says:

    Since writing this post, I have decided to try Tower as my git interface, even though my code is stored on — and runs on — a Windows box. When I create a repository in Tower, I point the “local” copy to my networked Windows location. In that way, I can use Tower for commits and merges, but still write my code on my Windows computer. It’s not ideal, but there is nothing as solid as Tower for Windows, and in my mind, Tower is worth it.

  2. jimothygator says:

    I’m kind of the opposite of you: A Mac guy presently working in a Windows shop. Most of the time, I use Git from the command line, but when I’ve got a few files to commit, but I don’t want to commit everything, a GUI is handy. Git Extensions is serviceable for Windows, but I agree, the current Git GUIs for Windows feel chintzy and not native.

    That hasn’t held me back, because again, I’m pretty comfortable with the command line. But it has held back my success at promoting/evangelizing Git to others, as many of them prefer a GUI. Hopefully, the state of Git GUIs will improve on Windows. On Mac, there are at least two excellent choices (Tower and SourceTree).

  3. Andy says:

    I’ve tried both SourceTree and Tower. Tower is more polished and, to me, better laid out. I am a beginner at git so that does make a difference. VCS is worth spending some money on.

    They put a lot of work into it. If you’re on a budget SourceTree is the way to go though.

  4. PixelAlb says:

    Nice article.
    Question: I’m on v1.5.0 of tower’s and I can’t see the tree graph on my commits list view screen. I can’t find a way to enable it.
    Can you please help?

    Thank you

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s