Welcome to the first post and first video of the video series Git Animated. With this series I am trying to visually depict how different Git commands and actions look like, basically what happens behind them when you execute them.
If you are interested in the other videos, please check the links below:
Note: if you are a software engineer and have never heard of Git, then this post, and the future ones, are not for you…and I am also sorry for you!
The motivation behind
From my experience I can tell that people have this tendency to take things for granted, and software engineers are no exception to this. One of the things they take for granted is Git…specifically the way to use it. This might not sound so terrible, but on the long run it has some devastating effects.
I was also one of those people, who initially took Git for granted, and by that I mean, I learned some basic Git terminology, some basic commands and I got away with that for some time. As I was using different IDEs, which come with very good support for Git, I didn’t have to bother understanding what actually happened when I wrote those commands or clicked those buttons in the IDE…stuff just worked.
As I was using Git more and more from the command line, I started to ask myself what actually happens when I type all those commands and hit the enter key. Another good motivator was the problems I got into, or stumbled upon, which I had a hard time fixing. You know what they say, read the fu**ing documentation, and so I started to pay more attention to what is happening behind the curtain.
Fast-forward to these days, I got into another situation, where I had all sorts of Git related problems, the other team members didn’t. This motivated me to really have a look at how things are working and to really understand the magic behind Git and its features. This is a work in progress, and it may still be for the months to come, but the more I read, the thinner the fog…
As I usually like teaching others about stuff, I said to myself it would be nice to create some content others might benefit of. A textual explanation is good, a static visual one is better, but a dynamic visual one is the best. So I started creating some videos.
The videos in this series are created using the open source Python library ManimCE. You read that right, I write Python code, which generates the videos, I can only hope you would enjoy.
The audience of these videos is made of people who have worked before with Git, and who want to either deepen their knowledge or brush-up on some concepts/commands.
The first video is about initializing a local Git repository, creating a bunch of commits, creating a new branch and some more commits on it. Hopefully it conveys some intuition on what happens when all those commands , displayed on the left side of the screen, are executed.
For your convenience, you can find below the Git commands which appear in the video:
git init git commit -m 'M0' git commit -m 'M1' git commit -m 'M2' git branch feature git checkout feature git commit -m 'F0' git commit -m 'F1' git commit -m 'F2'
Here is the video(there is no audio):
Online resources to learn Git
- Git reference documentation
- Pro Git book
- Coursera version control with Git
- Lecture on Version Control by “Missing Semester” CSAIL MIT
Feel free to drop me a comment or e-mail with your constructive criticism. It will be much appreciated!