This project is an educational re-implementation of core Git functionality using Python, built purely for learning how Git works under the hood. It mimics the essential commands like init, add, status, and commit, giving you a hands-on understanding of concepts such as staging, hashing, object storage, and repository structure.
Disclaimer: This is still a work in progress, expect rough edges, bugs, and missing features. Read (and run) at your own risk!
$ python3 main.py init test_repo
Initialized empty Git repository in test_repo
$ cd test_repo
$ echo "Hell, World!" > greet.txt
$ python3 ~/Documents/git-in-python/main.py status
On branch master
Untracked files:
greet.txt
$ python3 ~/Documents/git-in-python/main.py add greet.txt
$ python3 ~/Documents/git-in-python/main.py commit -m "Add greet.txt"
committed to master: 520b083f565d2335330eefe0cbd1f401abac600c