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 .git
directory, Git objects (blobs, commits,
trees etc.), packfiles, Git's transfer protocols and much more.
In this stage, you'll implement the git init
command. You'll initialize
a git repository by creating a .git
directory and some files inside it.
In this stage, you'll read a blob from your git repository by fetching its
contents from the .git/objects
directory.
You'll do this using the first of multiple "plumbing"
commands
we'll encounter in this challenge: git
cat-file
.