The question
What happens when a developer saves a commit, reads a history, or returns to an earlier version? I built a simplified local version-control system to make those operations tangible.
How it was built
The implementation used Java classes to represent commits, repositories, and tracked files. Linked lists organized commit histories and restore points; file I/O saved and reloaded versioned files locally.
- Commit history: linked-list traversal to reach earlier versions.
- Domain model: custom classes for commits, repositories, and files.
- Persistence: local file reads and writes.
- Interface: a command line simulating init, add, commit, checkout, and log.
The workflow
Create a local repository, track file changes, store commits, inspect the history, and return to a previous version. Logs include timestamps and version notes so the history can be read as a sequence of changes.
What I learned
Building the system strengthened my understanding of persistence and the data structures behind version control. It also connected implementation choices to developer experience: the way history is stored affects how people navigate and understand it.
Scope
Mini-Git is a simplified educational implementation inspired by Git. It is not a replacement for Git. The portfolio does not include a published repository, benchmark results, or a test report for this project.