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

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.

GitNub

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.