UC Berkeley CS61B Project 2
Course Calendar - Spring 2021
Project Specifications
This project is an implementation of a version control system similar to Git called Gitlet. The main goal of this project is to create a system that can track changes to files in a directory, allowing users to save and access different versions of their work over time.
In building Gitlet, I gained experience with the following concepts:
- Object-oriented programming
- File I/O
- Hashing
- Serialization
- Command-line interfaces
- Data structures such as lists, maps, and graphs
Gitlet can perform the following actions:
- Initialize a new Gitlet version control system
- Add files to the staging area
- Commit changes
- Remove files from the staging area
- Checkout a previous commit or a branch
- Create and delete branches
- Display the commit history
- Merge two branches