Mini Git
A reduced version of Git
|
A baby version of Git. View Source.
This was made for an assignment in a graduate course on Operating Systems.
For educational purposes.
This project has a .editorconfig file to enforce project level coding standards.
CLion has built-in support, VSCode requires a plugin.
This project requires CMake to build. Your IDE (VSCode or CLion) should automatically detect the CMakeLists.txt file and build the project. Install extensions for CMake support if prompted.
If you are using the command line, you can run the following commands:
./mygit init
./mygit hash-object [-w] test.txt
./mygit cat-file <flag> <file_sha>
-p
prints the content of the file.-t
prints the type of the object.-s
prints the size of the object../mygit write-tree
./mygit ls-tree [--name-only] <tree_sha>
--name-only
flag prints only the names of the files in the tree../mygit add <path>
./mygit commit -m "commit message"
./mygit log
./mygit checkout <commit_sha>
This project uses Doxygen to generate documentation.
If Doxygen is available on your system,
You can generate the documentation by running the doc
CMake target.
This repository also has an automated workflow to generate documentatation via Github Actions.
The generated documentation can be viewed at /docs.
A good starting point to explore the codebase is the file listing page. (files.html if you are viewing this in a browser)