review: O'Reilly video "McCullough and Berglund on Mastering Git"
This is the first O'Reilly video I downloaded. Technically this course has been recorded in optimal conditions. You won't be disturbed by noise nor bad images. O'Reilly did a great job at mixing the video with full-screen laptop screen and the room.
By downloading the course you'll get more than 5 hours of interesting course. The course is divided in well-organized chunks. Each chunk handles a specific item of git, which makes it great for later review.
As it starts by explaining Git as a distributed RCS systems with very explicit diagrams, this course can be followed by a complete RCS newbie. I'm considering myself as an intermediate user and started learning new stuff very fast. i.e. I never use "git add ." since I was quite confused about what happens to the repo. Explanations of this command makes me more confident about using this command since I now understand what this command exactly does. Did you know that "git add . -A" will actually track renamed files? I used to issue "git mv" commands for every renamed file in a repo while I could as well have issued the previous command.
Branches are cheap so branch often! Well I already knew that, but some things are good to be repeated. I'm also using tags, but never thought about what tagging exactly did. I actually didn't care about knowing this. Well, I can tell you I was wrong. The instructor doesn't only explain git commands, but always goes back to explaining what exactly happens in the .git directory. Understanding how the .git directory keeps the history brings a new dimension to using git. I.e. what happens if you delete a tag that has already been pushed to origin ? Never thought about this, but the example clearly helps explaining the fundamentals of Git.
For the more advanced users, the video's about merge and rebase will probably be a memory fresh-up about what actually happens to the repo when issuing this commands. For the intermediate or beginner this will actually look like the reason behind the existence of Git. On of the main purposes of Git effectively being to make merges easy !
The course ends with less common used commands. The existence of commands as git revert, reset, stash, clean and their influence on the repo demonstrates how Git foundations are reflecting reality. The repo keeps clean after playing with commits while keeping in mind this is a distributed RCS.