A lightweight version control system built from scratch to understand and replicate core Git internals like object storage and commit histories.
Supports essential commands like init, add, commit, revert, pull and push with remote storage powered by AWS S3.
- Node.js: Interation with File system
- Yargs.js: Dealing with commands
- AWS S3: Object storage
- Initialize repository (
init) - Stage files (
add) - Snapshot commits and metadata (
commit) - Revert to previous states (
revert) - Push/Pull from remote (AWS S3)
- Custom object storage design (inspired by Git internals)
Siya-CLI mimics Git's internal design:
- Objects stored as blobs (file snapshots)
- Commits track file states and parent history
- Metadata stored locally and synced to AWS S3
- CLI commands parsed using Yargs
# Initialize repo
siya init
# Add file
siya add <file>
# Commit changes
siya commit "commit message"
# Push to remote
siya push
git clone https://github.com/ShreelaxmiHegde/siya-cli
cd siya-cli
npm install
npm link
Buit to understand how Git works under the hood, including object storage, commit trees and other version control concepts.