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 <email@example.com> Date: Mon Apr 6 15:49:15 2015 -0400 Parse git object into struct and add corresponding test commit a7f92c920ce85f07a33f948aa4fa2548b270024f Author: aditya <firstname.lastname@example.org> Date: Fri Apr 3 12:38:24 2015 -0400 Add CatFile function and corresponding test commit 97eed02ebe122df8fdd853c1215d8775f3d9f1a1 Author: aditya <email@example.com> 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.