Changiz-Git is a lightweight version control system implemented in C, inspired by Git.
It provides essential functionality for managing repositories, tracking changes, and supporting branching workflows.
This project was developed during my first year at university to gain practical experience with version control concepts.
- init – Initialize a new repository
- add – Add files to the staging area
- reset – Unstage files or reset repository state
- commit – Record changes to the repository
- replace – Replace commits or objects in the repository
- branch – Create and manage branches
- log – View commit history logs
- checkout – Switch between branches or commits
- status – Show the current state of the working directory and staging area
- revert – Revert changes in the working directory or commits
- tag – Create and manage tags for specific commits
- grep – Search through repository content
- diff – Show differences between files
- pre_commit – Run checks or tasks before creating a commit
This project was developed to explore how Git works internally by re-implementing its core features from scratch in C, providing hands-on experience with version control concepts.