This Google Tech Talk, by Randall Schwartz, covers Git and how it works. I started using Git to host my emacs customizations on GitHub several months ago, but had no real idea of how to use it in depth. I could use it to commit changes and push to my repos, but did not know how to do any more advanced things, and almost deleted my work a few times while trying to revert commits.
This tech talk helped in my understanding of Git. Most of it was describing how Git worked instead of just what the commands do, which was very interesting and gave a better understanding of the system than just a rundown of the commands would have been. The downside of this is that by the time he got to how to do the commands, he was running out of time, so he ran through those pretty quickly. However, it was a great introduction to understanding Git and how to use it.
The staging area and index were explained quite well, which helps me understand a few times what I thought was committed actually wasn’t - I didn’t really understand why you had to add modified files before committing, and occasionally forgot to do this. Later, I was surprised when those files weren’t changed when I cloned my repos. Knowing how Git works will certainly help me use it correctly in the future.