A lightweight, command-line version control system inspired by Git, built in C++.
MiniGit is a simple Git-like system designed to track file and folder changes in a repository. It allows you to commit changes, view status, and check commit history—all from the command line. This project is perfect for learning version control mechanics, file hashing, and repository management.
-
Tracks all files and folders in the repository recursively.
-
Detects new, modified, and deleted files.
-
Detects new and deleted folders.
-
Keeps line-by-line change history for each file.
-
Supports commit creation and commit history viewing.
-
Clean, commented, and modular C++ code.
-
Simple Makefile for building and running the project.
-
C++17 compatible compiler (g++, clang++, etc.)
-
Linux, macOS, or Windows with C++ build tools installed
git clone https://github.com/TahiraNawab123/mini_gitmakemake runmini-git/
│
├─ main.cpp # Main program
├─ minigit.h # Header file with all core structures & functions
├─ minigit.cpp
├─ Makefile # Build file
├─ build/ # Compiled objects & binaries
└─ README.md