A small Git implementation that's capable of initializing a repository, creating objects in /.git (blobs, trees) and creating commits
Commands:
1. init (- to initialize a leGit repo)
2. cat-file (- to read a blob object from it's sha1 hash)
3. hash-object -w (- to create a blob object of the file)
4. ls-tree (- to read all contents of leGit tree object (type of object, name, sha1 hash))
5. ls-tree --name-only (- to read all the files' names of a leGit tree object)
6. write-tree (- to make a tree object from the files that exists in current directory)
7. commit-tree -p -m (- to write a commit based on the passed tree object with parent commit reference, author's creds and an optional commit message)