Staying up to date
In most cases, your local repository will be connected with one (or multiple) remote repositories that are used to exchange data. The commit data that you can inspect in these remote repositories, however, is only as up-to-date as your last sync.
There is no 'live' connection – you have to download new changes from the remote repositories to be able to inspect them.
To avoid having to do this manually, Tower 2 performs a 'fetch' operation in the background at regular intervals. This makes sure you're always up-to-date with what's happening on the remote server, without having to remember to sync things up yourself.
Keeping your working copy clean
In many situations, it is advisable – or sometimes even required – to have a clean working copy (i.e no uncommitted local changes) – expecially when pulling or rebasing, switching branches, or cherry-picking commits.
With its 'stash' feature, Git already provides the necessary tools to make this possible. On the command line, you simply need to call the git stash command to put your current local changes on a clipboard. The hard part is simply to remember to do this.
In version 2, Tower automatically offers to do this for you, in situations where stashing your local changes would be a good idea to help you avoid conflicts.
Its visualisation of stashes also helps make things very intuitive: each stash can be inspected as easily as a commit, including the exact changes it contains. You can restore any of your stash items, either completely or in parts.
Managing hosting services
You would think that cloning a repository wouldn't be a big deal. That's true – if you have all information readily available. A host of different authentication options can make this seemingly simple task quite tedious: managing SSH keys, creating passcodes and generating access tokens is both time-consuming and error-prone.
That's why Tower now integrates with popular code-hosting services like GitHub, Bitbucket and Beanstalk. After connecting your accounts just once in the app, you no longer need to juggle with usernames, passwords, tokens and URLs any more.
Cloning a repository from one of your accounts is then simply a matter of a single click. You can create new repositories directly in your hosting account right from within the app. And, last but not least, you can even manage SSH keys connected with your account.
In the end, it's not about the command line 'versus' a GUI client, because both approaches are valid and can be used side-by-side. Some things are indeed easy to do on the command line: like completing a commit, initiating a merge and creating a stash.
Other things, however – inspecting commit history, creating branches via drag and drop, and solving conflicts in a visual way – are far easier in a specialised GUI application.
In the end, the question is how to be productive. How to get access to the professional features. In an easy way.
Words: Tobias Günther
Like this? Read this!