Gitgo provides Go functions for interacting with Git repositories.
Unlike libgit2, which is written in C, Gitgo is written in pure Go, and can be compiled and cross-compiled easily for all platforms supported by Go.
$ go get github.com/ChimeraCoder/gitgo
Full documentation is available on GoDoc.
Gitgo is a library intended to be used by other applications, rather than a replacement for the git
command-line tools. However, gitgo does provide the gitgo
binary, which is used for testing the gitgo library functions and demonstrating their functionality:
$ cd $GOPATH/src/github.com/ChimeraCoder/gitgo
$ gitgo log 1d833eb5b6c5369c0cb7a4a3e20ded237490145f
commit 1d833eb5b6c5369c0cb7a4a3e20ded237490145f
Author: aditya <dev@chimeracoder.net>
Date: Mon Apr 6 15:49:15 2015 -0400
Parse git object into struct and add corresponding test
commit a7f92c920ce85f07a33f948aa4fa2548b270024f
Author: aditya <dev@chimeracoder.net>
Date: Fri Apr 3 12:38:24 2015 -0400
Add CatFile function and corresponding test
commit 97eed02ebe122df8fdd853c1215d8775f3d9f1a1
Author: aditya <dev@chimeracoder.net>
Date: Fri Apr 3 11:45:00 2015 -0400
First commit. Create .gitignore
Note that the gitgo
binary does not support all (or even most) of the functions provided by the gitgo library; it is intended for demonstration purposes and testing only.