I recently composed some slides and a video introduction to Git. I am planning to expand this into a series explaining the basics of how Git works.
My motivation for making yet another tutorial about Git is simple. I found that there was a common defect among many Git tutorials. They emphasize commands. They explain commands, often in very great detail. This is important information to learn to master Git, but not a good place to start learning Git.
As I say in my tutorial, I think that it is critical to first learn about how data is organized in Git. I don't mean to understand the fine details of how it works; I wouldn't be able to explain that myself at this point. I simply believe that for the commands to make sense, you need to have at least a basic understanding of the data that the commands manipulate.
In my tutorial, I attempt to convey the basics of the data structure that is a Git repo, and then introduce some of the most common commands.
This "Part 1" of my tutorial covers how data is organized in a local Git repo, but as Git is typically used as part of a distributed system, I am planning a "Part 2" that will explain the basics of interacting with remote Git repos and using Git as a collaborative tool.
This is the first time I've made a presentation of this nature, so if you enjoy this and get something out of it, I'd be glad to hear from you. If you think that it's an incomprehensible mess, I need to hear about that, too.