Tags: Artikel mit dem Tag «Git» durchstöbern
More than six years ago I concluded a blog post with the bold statement „I will start using subversion for everything... soon“. It turns out I couldn't have been more wrong. What has happened in the meantime?
Firstly, most of the Subversion servers I had been using have since stopped working or I didn't bother maintaining them anymore. SourceForge has gone rogue and Google pulled the plug on its Google Code platform. Instead, it feels like everyone is using GitHub and GitLab. Guess why they have Git in their names? Right. And running your own servers for tiny little private projects just accumulates way too much work over the years.
So is keeping track of repository locations. It's very convenient to have one hidden
.git directory following your code everywhere when dealing with suspended projects. When I move code from machine to machine, from OS to OS, onto portable dives and back, the repository and all the history is always sitting there right with the code. Some of my repositories for small private projects never even hit „the cloud“. Additionally, the Git storage is backwards compatible, so it's no problem to dive back into ancient repos. As it turns out, Git is really good for archiving.
But the most prevalent reason why I use Git is probably the branching and merging. In 2011 I worked for the first time in a larger team on a project using SVN. Not only did SVN often crash, it also made it really hard to do basic branching and merging. As a result, the code could only really be checked into the master branch (remember „trunk“?) with devastating results: Crucial steps like CI runs and code review could only happen after the code was already in master and therefor maybe even in production (Jeez!) or at least distributed to other developers breaking their builds. Nowadays I just open a merge request and It is only ever merged when everything works. And even then it's only in the development branch, undergoing further testing. Git does branching well and branches are essential for today's developer's workflows.
There's a nice project I'm working on. It's the bavarian film festival for student's movies. I like the idea behind this festival, because it enables pupils to show their movies to a broad audience on a cinema screen and win great prices. So once a year, I touch the code to slightly adjust the design a make a few fixes. Naturally I need a solution that works across the other ~361 days without much maintenance. It's easy to see why SVN with it servers, detached repositories, incompatibilities and bugs is not my go-to solution here.
Back in 2010, Julian Schrader, who is now my boss at Sophisticates GmbH, already suggested using Git in the comments of my blog post. And now, after six years, I use Git almost exclusively. So yeah: You win, Git.
If you're a git power user you might enjoy my script for deleting merged branches.