MiniGit - A Git inspired Version Control System
A lightweight Git-inspired version control system built in C++ to explore repository management, file tracking, hashing, and command-line tooling.

// brief
The ask.
// brief
MiniGit is a personal systems programming project built from scratch in C++ to understand how version control systems work internally. Instead of relying on Git libraries, core repository operations are implemented manually.
// problem
Most developers use Git daily without understanding how repositories, commits, references, and object storage work behind the scenes. The goal was to learn these low-level concepts by building a simplified version control system.
// solution
Designed and developed a Git-inspired CLI application using modern C++. Implemented repository initialization, object storage, file tracking, commit management, and branch reference handling using the local file system. Structured the project with modular components to mimic real-world version control architecture.
// outcome
Created a working command-line version control tool that demonstrates understanding of file system operations, repository structures, hashing concepts, and systems-level software design while strengthening modern C++ development skills.
// screens
Through the glass.



// 01
Tools
- C++17
- STL
- File System API
- CLI
- Git Concepts
- Object Storage
// 02
Note
- Educational project focused on understanding version control internals.
- Built entirely in C++ without external version control libraries.
- Inspired by core Git architecture and workflows.
// 03
Features
- Repository initialization (minigit init)
- Custom repository structure and metadata management
- File tracking and object storage
- Commit creation and history management
- Branch reference handling
- Command-line interface for repository operations
- Cross-platform C++17 implementation
- Modular architecture for future feature expansion
- File system based storage engine
- Git-inspired workflow and repository design