I fully embraced the motto “go big or go home” when I started to think about my first solo community presentation for Stanford Drupal Camp 2017. I wanted to force myself to learn a subject well enough that I could explain it to others. I like a challenge, so I set my eyes on understanding the fundamentals of Git.
Originally I wanted to name my talk “Git Destroys Lives and Tears Apart Families,” but the deeper I dove into Git, the more I realized that understanding the nuts and bolts of Git was not that hard or scary. 2
The light bulb above my head turned on when I realized that a good portion of what I do with Git only exists on my local computer. After this realization, I broke my presentation into four digestible chunks.
First, I explained a local Git Project/Repository, including the steps to move a code change from the Working Directory, to the Staging Area and finally to the Git Directory.
Second, I described how teams can use Git by utilizing remote repositories.
Third, I explained what makes Git stand out from other version control systems: Git’s fast and powerful branching feature.
Lastly, I explored some common Git situations: conflicts, merging, rebasing, cherry-picking, and stashing.
I purposely didn’t give many shortcuts, because I think it’s better to force someone to go through a slightly longer process in order to fully understand how the process works. I also asked my listeners to be patient, because Git is complicated. I sometimes used words before they were defined.
Overall, my presentation merely skimmed the surface of Git. Perhaps I will give a talk in the future that delves deeper into Git? Let’s see!
2 Don’t get me wrong, Git can get excessively and unnecessarily complicated really fast. Just take a look at the biggest and weirdest commits in Linux Git history. I am not naive about the monster that Git can be if you feed it after midnight. However, for a lot of situations, Git really isn’t that hard to work with and understand.