My Git renaissance
Revision control is something every developer should use. Git is in my opinion the best one.I’ve been using a version control system for a long time. I love it and it has become essential to my workflow. I’ve been using Subversion (SVN) and it worked just fine for me. In the mean time Git become extremely popular, I played around with it a bit, but it never made me want to switch. Until a few weeks ago.
My SVN experience
I had no complaints about SVN. It has a lot of benefits – there’s a lot of great software clients for it, I could very easily host it on my own server and most importantly – it (almost) saved my life on a few occasions.
So why would I switch to anything else? The answer is very simple – even though I never had any problems with SVN, some of my friends I work with had a lot of them. It was also notvery fast. Some of the commits meant that I had enough time to make myself a tea before it would finish. It worked fine, but was never great.
Git on the other hand promised a lot of features that would make it the best thing on earth since sliced bread. For some reason though, for a really long time, I didn’t get it. I tried to start using it several times, but didn’t really get into it. Maybe it’s the steep learning curve when used only with Terminal commands, maybe something else… I don’t know. But finally, a few weeks ago I forced myself to try it again… and it turned my world around!
Git – what is it?
Wikipedia states that:
“Git is a distributed revision control system with an emphasis on speed. (…) Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.”
Just like SVN, Git is a revision control system. It keeps the whole history of my development and makes it easier to work in teams. Sounds very similar to SVN. But it actually is a lot better. Here’s why:
Why is Git so cool?
The hype around Git is huge. But it’s not about hype for me, it’s about the advantages:
Because Git is distributed, it’s lightning fast. Commits take several seconds, switches between branches are almost instant. No lag, no waiting. Just perfect!
Because it’s distributed, I can work offline and commit as many times as I want. When I go online, I push changes to the server. No more long periods without commits. Brilliant!
Advanced branching and merging
I used to use branching with SVN, but it was rather slow and awkward at times. With Git the whole process is a breeze. Wicked!
SVN creates .svn folders everywhere. Even under your bed and in your closet. I seriously had dreams about .svn folders. Git creates only one .git folder which makes it a lot easier to not screw up everything, while coping and pasting. Yay!
There is a ton of other benefits of using Git. I will stop here. If the advantages I mentioned didn’t convince You, I don’t think anything will.
GitHub – social coding
Git started as a tool for the biggest nerds. It was pretty complicated and felt a little bit esoteric. With time it became more and more popular. And then GitHub was born and it completely changed the world.
The basic idea of GitHub is very simple. It’s a platform that hosts Git repositories. Nothing special so far, there’s a lot of similar platforms for SVN. But what makes GitHub different is the social layer built on top of the repository hosting. It makes it extremely easy to share, contribute and showcase code. It’s also free for all open source projects and that’s just great for the whole internet community.
I started using Git a few weeks ago and I would never go back. I already saved a lot of time, managed to improve my workflow and have a lot more control over my code. GitHub is a great place to learn, share and contribute with others. It not only improved my workflow, but also made me a better developer – something I never expected. So thank You Git and I’m sorry I’m late to the party!
What are your experiences with revision control systems? Have You also switched to Git recently? Comment below and share your thoughts.