Making the most of GIT with Tower


GIT by itself is an excellent tool, its version control done right, with awesome branching and tagging capabilities that allows you to make a workflow that your whole team can use. Check out my post on the reasons why we switched from SVN to GIT and haven't looked back. Unfortunately with all the great features that GIT brings there is a bit of a downside, how do you keep track of your working HEAD and those branches?

I've found GIT on the command line difficult to use for complicated workflows with multiple branches, its easy to get completely lost as to what branch you're working on, this presents plenty of dangers like accidentally pushing commits which you didn't want to push. Don't get me wrong some people will find GIT on the command line super easy but for me it just doesn't flow nicely and I find it hard to visualise the working tree. Then there is GIT in IDE's and text editors, I'm currently using Sublime Text 2 and there is a great package for GIT, but again for me it doesn't give enough feedback on the working branch and the changes I've made. I've found Sublime text doesn't show diffs in nice format at all but that could be down to the theme I'm using.

Take control with Tower

Then Ollie came across Tower which is a GIT client for the Mac (Sorry windows users, there isn't a version for you yet) which we have been using in our team for the last few months. So far I have found it a great experience and much better then the command line or any IDE/text editor interface. It works flawlessly with GitHub, Bitbucket and Beanstalk all of which I use regularly and makes it easy to understand and view all your remote and local branches in a beautifully designed interface.

Managing all your repositories is a pleasure, the dashboard shows all of your repos and how many commits ahead or behind they are, you can even sort your repos into folders to help you keep track of things. There are some handy tools to clone SVN repositories or create new GitHub, Beanstalk and Bitbucket repos right from within your dashboard.

Tower makes working in a team environment a breeze, at any stage you can fetch the latest commits and see exactly what was changed. It also improves merging conflicts, although it doesn't have the merge capabilities built in it does play nicely with external merging tools and detects when merges have been saved.

Alternative GIT Clients

Unfortunately all of the power of Tower comes at a price, currently at £39.95 for one license, that may seem like a lot but this really is a fully featured package that covers almost everything that you would want to do with GIT so I think it's worth the money. I have also noticed some discount codes knocking around so be sure to look around before purchasing.

If you are on a budget but still want the power of a GIT client I would strongly recommend the free SourceTree by Atlassian, this GIT client is a little rough around the edges and the interface is confusing but all the feature are there. There are of course plenty of other GIT clients around but I haven't seen any that match these two on features.