Learn Git Internals
For many of us, how Git works under the hood is a mystery.
What is the
.gitdirectory used for?
What are Git objects?
How does a Git client communicate with a Git server?
If one really wanted to understand this topic better, these are some of the resources they’d probably look at:
The Pro Git book by Scott Chacon & Ben Straub
Rebuilding Git in Ruby by Thoughtbot
Write yourself a Git by Thibault Polge
I’ve read all of these, and I know that they aren’t the easiest to follow. They’re often theory-heavy with no code examples, or 2000 word+ series that can get hard to keep up with.
Here’s the part where I offer you a better solution.
The CodeCrafters’ Build your own Git challenge is a hands-on challenge where you’ll learn Git internals by building a small Git implementation. The application you build will be capable of initializing a repository, committing changes and cloning a public repository from GitHub.
You’ll proceed stage by stage, starting with simple stages like “Initialize a
repository” and eventually building up to a minimal-featured Git
implementation that can interact with a public repository. Along the way,
you’ll learn about the
a few of Git’s “plumbing”
(blobs, commits, trees etc.), Git’s transfer
You’re free to use any programming language of your choice, and work from the comfort of your own editor. Submit code via a git push once ready, and we’ll stream test results directly to your terminal.
You’ll also get to chat & compete with like-minded folks in the process. (We run 1-week long sessions, attempt at your own pace)
Sounds like your jam? Checkout our early access program!