A version-control system that mimics some of the basic features of the popular system Git.
Skills: Java, Serilization, Persistance, Git, System Design
A version-control system is essentially a backup system for related collections of files. The main functionality that Gitlet supports is:
-Init: Creates a new Gitlet version-control system in the current directory.
-Add: Adds a copy of the file as it currently exists to the staging area
-Commit: Saving the contents of entire directories of files.
-Rm (Remove): Unstage the file if it is currently staged for addition.
-Log: Viewing the history of your backups
-Global-log: Like log, except displays information about all commits ever made.
-Find: Prints out the ids of all commits that have the given commit message, one per line.
-Status: Displays what branches currently exist, and marks the current branch with a "*". Also displays what files have been staged for addition or removal.
-Checkout: Restoring a version of one or more files or entire commits
-Branch: Maintaining related sequences of commits
-Rm-Branch: Deletes the branch with the given name.
-Reset: Checks out all the files tracked by the given commit. Removes tracked files that are not present in that commit. Also moves the current branch’s head to that commit node.
-Merge: Merging changes made in one branch into another.
Bryan Aguirre