After learning the basics of Git, I had one of those moments. One those moments where I couldn’t imagine how I ever managed before. In what now seems like a past life, I used Subversion. I only started using subversion because thats what the devs were using. It was only until I started learning Ruby on Rails, through the incredible RailsTutorial.org resource that I was introduced to git and got absolutely hooked.
Why Learn Git?
Before you learn a new skill, its always important to ask, why? Knowing why you want to learn something makes the entire process more enjoyable, as you can see the light at the end of the tunnel. For me, I was sick of screwing up Subsversion repositories. I somehow managed, at the great annoyance of the devs, to break various subversion repositories. Don’t ask me how (I don’t know), and don’t email me with a lecture on the virtues of Subversion and what I was doing wrong. But why use version control at all? Running numerous web apps (I think I currently have 7 live apps) with not just one person working on them, means there is a huge opportunity for things to go wrong. Files are being changed almost 24 hours a day. Basically, without version control, I would have no hope of making progress. But Git also helps me with smaller projects too. For example, now that I’m Git aware, I use it with all my design work to keep track of the various edits and changes I make. Now I can skip back through various designs with ease. I have even put all my personal blog files into a Git repository so that the next time I feel the urge to screw around on a server, I won’t (hopefully) break anything that can’t be reversed.
How I learnt Git
It all started with RailsTutorial. Although its a book on RoR, its also the perfect introductory to Git. Even if you have never used version control before, you’ll understand whats going on with the step by step practical approach. The RailsTutorial book will give you the basics. But you’ll probably need to further expand on this, with some deeper understanding of the entire process. I found that Getting Good with Git, was a good companion to RailsTutorial. Finally check out ProGit. Its Free, and goes into a lot of depth. I’m using it to learn more about the internals of Git.
Rinse and Repeat
The most important thing with Git, is to screw around. Try experimenting and don’t worry if you get errors - just Google them and find out why. Its the best way to learn. Also, don’t cheat by using a GUI for Git. I think a GUI is probably harder to understand than actually using the command line so you probably won’t be cheating. You can easily learn Git in a weekend, but I found it took a couple of weeks of using Git to become really at ease with all the concepts. And with like anything, there is always room to improve - as far as I see it, I’m still a noob.