Devs on Git is an interview series with developers sharing their insights on version control and Git. Interview #1 features Andreas Linde from Germany.
Please introduce yourself.
My name is Andreas Linde. I studied Communication Engineering at the polytechnic university in Furtwangen, Germany, and worked over ten years as a software developer and project manager in some well known German software companies.
Since December 2010 I am working as a freelancer developing software. Besides that I created various open source projects, QuincyKit and HockeyKit, that improve various aspects for software developers on the Mac and iOS and I am currently working on a full web service, HockeyApp, for those.
What are the main technologies (languages, frameworks, etc.) you work with?
What are you currently working on?
Besides a very challenging contractor work on iOS, I spend most of my time on HockeyApp.net. This is going to be a hosted service for Mac OS X, iOS and Android developers to improve developers lives in some aspects. Right now we are focusing on two aspects that occur in nearly all software development projects, which are providing an easy mechanism to send out beta versions of apps and collecting and managing crash reports.
We think that developers get the best quality, if the testers only have to use the app. And whenever there is a new version it should be as easy as possible for them to update, and if there is a problem like a crash, they shouldn’t have to be bothered with anything technical.
How did you learn Git?
In my former jobs we had to use either Subversion or ClearCase as a software configuration management system. About 2008 I got in touch with Git the first time in a SproutCore training I took. The developer was using this thing on his MacBook Pro with all those weird commands in the terminal and was advertising it so positive, I hardly understood anything. It was like someone from another world was trying to explain some fancy features I didn’t know I was missing.
About 6 months later I sat down myself and wanted to find out what the greatness of Git could be, this was also influenced by GitHub getting more and more popular and I wanted to be able to do a little more than just checking it out. Then slowly I understood some of the core benefits like using branches as the most natural thing on earth (which I knew from using ClearCase), the beauty of having the complete repository locally and being able to commit, stash, rebase, push and merge. I was so excited that when I told others about it, I must have sounded like the guy from the SproutCore training. Today I couldn’t switch to Subversion any more, Git is just so superior.
What is the main benefit of Git in your opinion?
Everything! Ok, that was about VCS in general. There are things Git does better than other version control systems, and things that others like Mercurial do better. The main reason for me using Git and nothing else is GitHub. And since the release of Tower there is now also a great Mac client, I am set for now.
VCS is really helpful when developing software, no matter if I’m working by myself or in a team. I think which specific system one uses isn’t that important, it has to improve work. One day, another one will appear and improve more again.
Is there a certain feature in Git that you find especially cool/helpful?
Stashes are very very helpful. It lets you try something out, stop working on the idea and continue later without committing it right away when switching tasks.
Do you have any advice you would like to share?
Use Git Flow, it is brilliant! Honestly, Git Flow is a documented, small but very clean concept of how and when to branch. The moment I read it, it felt just right. It is one of the things you see and say: Of course, how could one do it differently.