← Back to selected work

SOFTWARE ENGINEERING / JAVA

Mini-Git

Understanding version control by building it from the inside out.

Mini-Git / project notebook
Mini-Git project artwork
CONTEXT
Data Structures & Algorithms · University of Washington
CONTRIBUTION
Individual course project.
TOOLS
Java · Linked lists · File I/O
01

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.

02

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.
03

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.

04

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.

05

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.

NEXT PROJECT →

Designing for connection