Learn Git

Git is a famously powerful and famously confusing version control system used by software engineers everywhere. Increasingly, as other types of work begin to look more like software engineering (in my case network and systems engineering), git becomes useful for those folks as well. In that regard, here are some resources to learn git. I recommend you start at the top, get enough to work with, play with git by yourself, and return for the more advanced stuff when the basics don't cover your needs anymore.

  • Atlassian covers some good ways to install Git. I recommend the Homebrew method if you're on a Mac and use Homebrew. It'll make it easy to install and update Git as well as other software.
  • Git Essentials LiveLessons is a Safari Books Online video course for teaching the very beginnings of git. It's not a free resource, but it's a good one.
  • The Git Tutorial is a short text introduction to using git.
  • GitHub makes an interactive tutorial.
  • js.org has a very nice interactive tutorial on Git branches.

Once you have a decent workflow with git, you need to learn some of the theory behind it and the more in-depth commands it offers:

  • The Git User Manual is a relatively short introduction to some of git's features
  • Pro Git is a free online book for learning git that goes from beginner level to expert level. Very useful for learning the commands.
  • “Getting Git” by Scott Chacon is a great video explaining how git tracks content internally. A lot of git suddenly makes much more sense once you see it from the inside out.
  • Git For Ages 4 And Up is another really good video explaining git internals (though it's not perfect: questions interrupt the presenter, and it's cut short). As a bonus, I think everyone was required to dress like a hipster for it.

Git is such a flexible tool that there are multiple workflows possible for it. Different teams will choose different workflows, but here are some of the more popular ones: