This is a fun rewrite of Git using Rust. It attempts to be a CLI program to be similar to Git to increase understanding of the internal workings and terminology of Git.
Clone this repo, build the target and then a new CLI program og
can replace the main commands of git
.
git clone ...
cd oxide-git
cargo build --release
# this outputs into `target/release` folder
target/release/og init # other basic commands etc.
To not interfere with actual git
(especially inside this repo) we will replace any git
names with ogit
. So version history controlled by oxide-git
is under the .ogit
directory.
This repository uses pre-commit to run format, lint and check for CI prior to commits and merges.
That job will run clippy
linting and rustfmt
for formatting.