In this challenge, you’ll build a Git implementation that can initialize a
repository, create commits and clone a public repository from GitHub. Along
the way, you’ll learn about the
a few of Git’s “plumbing”
(blobs, commits, trees etc.), Git’s transfer
In this stage, you’ll read a blob from your git repository by fetching its
contents from the
Now that we’ve learnt how to read/write blobs, let’s move onto our next
Git object: the tree. In
this stage, you’ll read a tree object from storage by implementing the
git ls-tree command.
In this stage, you’ll write a tree to git storage by implementing the
To keep things simple, we won’t implement an
index, we’ll just assume
that all changes in the worktree are staged.
This is the last stage of the challenge, and probably the hardest! In this stage, you’ll clone a public repository from GitHub. To do this, you’ll use one of Git’s Transfer protocols.