This is the first of several posts exploring how git works under the hood. While lots of programmers are familiar with using git, I wanted to do a deep dive into how git is implemented. git employs many clever ideas to optimize common version control operations. I'm a big fan of trying to understand software by playing around with it rather than reading lots of documentation. To that end, I've wri
![Git Internals part 1: The git object model](https://cdn-ak-scissors.b.st-hatena.com/image/square/8b116bbc052c8fe1ef7ff35484257822b2f146b3/height=288;version=1;width=512/https%3A%2F%2Fdev.to%2Fsocial_previews%2Farticle%2F882363.png)