For tracking changes to a collection of files, Git is the ubiquitous solution. It's free, robust, comprehensive, and there is a plethora of resources that are easy to find.
I usually find the commands difficult to remember though, and the concepts which Git is built on often seem counter-intuitive to me. This means I spend a lot of time searching for answers and trying to remember how I can use Git to experiment with a project without fear of losing any hard-won progress.
Ry's Git Tutorial by Ryan Hodson is the best way to learn Git that I have come across. Its simple, practical, and clear. The reader learns how to use Git by creating and maintaining a simple website1. This gives the Git commands a meaningful context, which makes them a lot easier to remember and use in the future.
The tutorial was first published in 2012 and the website which originally hosted the examples no longer exists. Each tutorial chapter starts with a link to download the project files up to that point, so the reader doesn't need to start at the beginning but can jump into the guide at any point.
Unfortunately these links no longer work and I'm going to make the materials available here so that they can continue to be useful. If the author would like to get in touch, please do. I'd like to keep this great resource available so that others can benefit from it.
Download the example files for each module below:
- Chapter 2: Undoing Changes
- Chapter 3: Branches I
- Chapter 4: Branches II
- Chapter 5: Rebasing
- Chapter 6: Rewriting History
- Chapter 7: Remotes
- Chapter 8: Centralized Workflows
- Chapter 9: Distributed Workflows
- Chapter 10: Patch Workflows
- Chapter 11: Tips & Tricks
- Chapter 12: Plumbing
This tutorial was also the first time I created a simple website, and it led to so many "ahah!" moments. It unlocked all the web development progress that followed. ↩