Get git

2013-06-29

Time well spent

The first time I tried git, I was seriously confused. Browsing the git help documentation actually made it worse:

One thing is for sure, this software isn't optimized for ease of learning. After having spent quite some effort trying to understand git, I now see that it is an impressive piece of technology; it tackles a fundamentally difficult problem with an elegant solution.

I will not argue whether it's better or worse than other tools but rather explain what helped me understand git and hopefully it may help someone else get git too.

Interactive tutorials

A great way to start off is to try to use git in a safe environment.

Github has a solid introduction tutorial which holds your hand while explaining the basic git commands. It is 15 minutes well spent.

Then there is the git Immersion tutorial, which is a little more advanced.

Finally, I can recommend the branching tutorial. What I liked about it was that it visualizes your branches throughout the tutorial.

Books

I highly recommend reading a book or two in order to grasp the fundamental concepts of git. There are numerous books available; I've read two cover to cover.

"Version Control with git" by Jon Loeliger is a thorough book but I found it to be a bit too detail-oriented.

"Pro Git" by Scott Chacon is a free book. It's a short read and to the point. I should have read this first in order to better appreciate the details from the first book.

Videos

git-scm.com has a set of solid git introduction videos. There is also the Introduction to git video by Scott Chacon from 2011 which I still think is great to watch.

One day I stumbled over a set of video tutorials with Matthew McCullough and Tim Berglund. Mastering Git and Mastering Advanced Git are 8 hours of videos which deals with the basics to the finer points of git. These are definitely worth the time and money, I learned a lot from them.

Use git

The most important piece of the puzzle for me was to use git every day in a project. Don't be afraid to try the different commands; there is (well usually) a safe way out of any problem.

git is a sharp tool; it certainly pays off to understand git's design philosophy because that makes it possible to reason about how git may behave in any given situation.

"A branch, a tag, and a reflog walk into a bar. The bartender says, "What is this, some sort of rebase?"

CVTwitterLinkedinstackoverflowKodemakerFlickr500pxRSS