This is my implementation of the "Build Your Own Git" Challenge. In this challenge, you build a small Git implementation that's capable of initializing a repository, creating commits and cloning a public repository. Along the way you learn about the .git
directory, Git objects (blobs, commits, trees etc.), Git's transfer protocols and more.
Note: If you're viewing this repo on GitHub, head over to codecrafters.io to try the challenge.
The your_git.sh
script is expected to operate on the .git
folder inside the
current working directory. If you're running this inside the root of this
repository, you might end up accidentally damaging your repository's .git
folder.
We suggest executing your_git.sh
in a different folder when testing locally.
For example:
mkdir -p /tmp/testing && cd /tmp/testing
/path/to/your/repo/your_git.sh init
To make this easier to type out, you could add a shell alias:
alias mygit=/path/to/your/repo/your_git.sh
mkdir -p /tmp/testing && cd /tmp/testing
mygit init