go-git is a Git library written entirely in Go. It is designed to be developer-friendly and highly extensible. In this talk we will introduce go-git, the reasons why we created it, its current development status and its roadmap. We use go-git to fetch every Git repository that has been published (all GitHub, Bitbucket, self-hosted...) and analyze all source code history and we hope that it can support many other use cases.
go-git intends to be the way to go for Git with Go and a solid alternative to libgit2 and jgit. Currently the library has 22k LOC's, has full read-feature parity with libgit2, has a dedicated team committed to it, and is the 3rd most popular git implementation. While it's still has a long way to go, we have already used it to fetch and analyze 17M GitHub repositories, so it has a good stability level for the feature set that we have implemented so far. Developers who are looking into building software to manipulate repositories at low level will find go-git a tool that can boost their productivity.