Implementation of git internal commands in Go language.
This project is part of a learning exercise to implement a subset of "git" commands. It can be used to create and maintain git objects, such as blobs, trees, commits, references and tags.
This video is a supplemental tech-talk recording explaining the internals of "git" (Delievered at Nutanix, Inc, 2020)
gogit - the stupid content tracker
usage: gogit <command> [<args>]
Valid commands:
init Create an empty Git repository
hash-object Compute object ID and optionally creates a blob from a file
cat-file Provide content or type and size information for repository objects
ls-tree List the contents of a tree object
mktree Build a tree-object from ls-tree formatted text
checkout restore working tree files
commit-tree Create a new commit object
log Shows the commit logs
show-ref List references in a local repository
update-ref Update the object name stored in a ref safely
rev-parse Parse a given git identifier
Use "gogit <command> --help" for help on a specific command
go get github.com/ssrathi/gogit
Contributions are most welcome! Please create a new issue and link your PR to it.