Yet another Git clone. The purpose of this project is to help me understand git internals.
The objective is to develop something that can seamlessly substitute normal Git for day-to-day operations.
Porcelain Commands
Command | Note & Limitations |
---|---|
init |
No support for reinitialization |
commit |
|
status |
|
add |
also support stage |
Plumbing Commands
Command | Note & Limitations |
---|---|
cat-file |
currently only supports -p |
hash-object |
|
ls-tree |
|
ls-files |
|
write-tree |
|
commit-tree |
|
rev-parse |
currently only work with HEAD |
Here are some references I used during this project
- Git book
- Codecrafters Build your own Git challenge
- Write yourself a Git!
- Building Git - Most comprehensive introduction
- libgit2, gitoxide, go-git, and jgit codebases