For several years now, Git has been a standard tool for every software developer. And rightfully so: Git has huge potential to improve the quality of your software development process! But much of that potential, quite sadly, remains unused. Only few teams are getting the most out of Git, for a couple of reasons.
This is a guest post from Tower, a popular Git client for Mac and Windows.
Git is undoubtedly a main reasons why software development has become much more powerful and collaborative in the last couple of years. But besides these wonderful benefits, Git also comes with its challenges.
(1) Complexity: Git is known (and almost feared) for its high complexity. Even after you’ve mastered the steep initial learning curve, many features remain difficult to use on a daily basis.
(2) Advanced Features: Tightly connected to (1), many developers don’t have the time or motivation to go beyond the absolute basics: very often, the classic “commit, pull, and push” is all that’s being used. And understandably so: a developer’s day only has so many hours, and learning Git’s advanced features might not be a top priority. The predicament, however, is clear: Git has a lot to offer, but only if you take some time to discover and learn its more advanced features!
(3) Productivity: Many Git commands require complex sets of parameters. Others are simply cumbersome and complicated by nature. Anyone who’s ever used Interactive Rebase, for example, knows that it’s (a) an extremely powerful tool but also (b) quite difficult to use.
Using Git – despite all of its wonderful powers and potential – can often be a frustrating, time-consuming, and error-prone business. Let’s look at some ideas on how to deal with these problems!
I strongly believe that, in a lot of cases, the use of a graphical user interface can make a world of difference. But as co-founder of Tower, a popular desktop GUI for Git, I am naturally biased. Therefore, while trying to demonstrate – as objectively as possible – that Tower can be a great solution to the above problems, I will also offer additional, alternative ideas to deal with them!
As already said, Git can be quite overwhelming – especially for beginners. Luckily, there are helpful (and free) learning resources available that can help through those early days:
A desktop GUI like Tower is another way to keep Git’s complexity at bay. A good example is when you have to undo a mistake: Git offers lots of different commands and tools to undo mistakes. But, like always, you have to know these commands and how to use them!
In Tower, we recently implemented CMD+Z as a keyboard shortcut: just like in your text editor, you can press it at any time to undo your most recent action. This is extremely powerful, because it works independent of what command you executed! A failed merge operation, an accidentally deleted branch or a push that happened to early… undoing all of these mistakes is as easy as pressing “CMD+Z”!
If you want to take the quality of your software development to the next level, you won’t get around Git’s advanced features. Just a couple of examples:
The “First Aid Kit for Git” is a wonderful (and free) little video series that covers all of these tools in 2-3 minutes each.
If you’re using a desktop GUI like Tower, you will have easy access to these more advanced (and often: more complicated) features. Here’s an example of how simple it is to access Interactive Rebase via Tower:
Finally, if your goal is to become more productive with Git, I firmly believe there’s no way around a desktop GUI like Tower. The following examples are all things that Git on the Command Line simply cannot deliver; sometimes, a GUI not only “replicates” functionality from the CLI, but it adds new abilities on top:
Finally, here’s what some of our users say about Tower:
If you want to give Tower a try, just download it from our website and test it 30 days for free.
Author: Tobias Günther, @gntr