Tag Archive for git

Tower 1.x

Tower LogoTower has left beta and is now available in 1.x form for purchase – and I did.  Really, I can’t imagine using anything else for Git repository management.  It’s awesome.  I have no affiliation, but I appreciate a nice piece of software.

Good job Tower team.


Tower LogoOver the last few weeks I’ve tried out numerous Git UIs under OS X. Nothing even comes close to Tower, which I discovered yesterday. It actually feels like a Mac app, not a hacky port. Just look at these beautiful screenshots (inline comments are mine, not part of the application)…

Tower Screenshot 1
Tower Screenshot 2

Some features that I just love include:

  • List of all Git projects so you don’t have to dig around in Finder or Terminal looking for them. This is especially good since I will often make, say, a WordPress theme the root of my Git repository, but it’ll be nested under ~/htdocs/somedomain.com/wp-content/themes/theme_name.
  • The number of uncommitted files is easily visible from the Dashboard and the desktop (Launcher, Cmd-Tab) icon. This acts as a call-to-action and motivates me.
  • Extremely easy to add new repositories. No command-line required.
  • Easy access to Stash, a fantastic Git command which I didn’t even know about before trying Tower.
  • Pleasing to the eye. Yes, I know, this really shouldn’t be part of the criteria for a developer’s tool… but it is, and I like it.
  • Easy, easy, easy. I’ve learned more about Git just from poking around in the menu options than I did in weeks of looking up “how do I do X” on Google.

Tower is currently beta. I have no affiliation. I also have no idea how much it will cost when it’s released, but compared to the other offerings out there I don’t think they’ll have trouble selling it.

Exporting a Git Repository

Git LogoAnother one of my Git complaints (up until now) was that I didn’t know how to export a repository so that it excluded all of the .git files/folders (similar to the way that svn export works). Well, another one bites the dust.

git checkout-index -a -f --prefix=/path/to/folder/

Make sure the –prefix folder path includes a trailing slash.

–prefix supports relative paths as well.

I should also add that you should make sure you commit your latest changes, or they won’t be included – even if they’re saved. This is probably obvious, but I sometimes overlook the obvious :)

Commit / Version Numbers with Git

Git LogoMy biggest out-of-the-box Git complaint is that it uses SHA1 hashes to identify each commit.  Technically this makes a lot of sense, but from a human readability standpoint it sucks.  And by looking at two commit hashes, you don’t know how many commits were in between them.

So, here’s the methodology I use to keep track of commit numbers and get a little bit of version numbering out of the deal.


Git LogoI’ve been using Git quite a lot lately for managing my code.  For those of you that don’t know, Git is a version control system, similar to SVN.

Historically, my only real experience with version control was Microsoft VSS (Visual SourceSafe).  But that was back in my Windows days in a corporate environment working for the man.  As an independent developer I’ve realized that I require something similar, even if it is only me that’s working on the project.