A lightweight version control system inspired by Git, implemented in Go.
███████╗██╗ ██╗██████╗ ██╗ ██╗███████╗██████╗
╚══███╔╝╚██╗ ██╔╝██╔══██╗██║ ██║██╔════╝██╔══██╗
███╔╝ ╚████╔╝ ██████╔╝███████║█████╗ ██████╔╝
███╔╝ ╚██╔╝ ██╔═══╝ ██╔══██║██╔══╝ ██╔══██╗
███████╗ ██║ ██║ ██║ ██║███████╗██║ ██║
╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
- Initialize repositories
- Track file changes
- Create and manage commits
- Branch management
- Commit history viewing
- File status checking
- Commit reverting
go install github.com/IRSHIT033/zypherzypher initzypher statuszypher commit "Your commit message"zypher logzypher revert <commit-hash>List all branches:
zypher branchCreate a new branch:
zypher branch <branch-name>Switch to a branch:
zypher checkout <branch-name>Zypher stores its data in a .zypher directory with the following structure:
.zypher/
├── objects/ # Stores file contents and commits
│ └── <hash-prefix>/
│ └── <hash-suffix>
├── refs/
│ └── heads/ # Branch references
│ ├── main # Default branch
│ └── <branch> # Other branches
└── HEAD # Points to current branch
- Objects: Files and commits are stored as blobs in the objects directory
- References: Branches are stored in the refs/heads directory
- HEAD: Points to the current branch
- Commits: Store file hashes and metadata
- Branches: Point to specific commits
MIT