I particularly like the iterated development approach to teaching on this site. That is, one starts with some minimal working code, states a goal, and then modifies the code to accomplish that goal --- repeatedly.
This is a very powerful way to go through a codebase (when it is possible).
Anyone knows of similar projects in another languages? I've been wanting to understand some important tools (like git in this case) and also learn some languages I've been pushing back. Would love to find more of these
Also, https://codecrafters.io/challenges/git supports multiple languages (I'm the author). Many folks that try this challenge do it for the same reason you mentioned: to learn about a tool and learn a new language at the same time.
I was thinking the same and found the book that teaches to build Git in Ruby, although I haven’t checked it out yet: https://shop.jcoglan.com/building-git/
I think I have most of the object type parsers done for loose objects and pack files, just need to finish implementing the delta ref decoding algorithm.
This is a very powerful way to go through a codebase (when it is possible).