go-git/go-git
A highly extensible Git implementation in pure Go. observed · 2026-08-28
Health v2 · maintenance only
98/100
- Activity 99
- Release rhythm 95
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: 20
- age_days: 2449
- days_rel: 35
- days_push: 7
- n_releases_24m: 18
Adoption not part of the score
7683 stars · 1014 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
go-git is a highly extensible Git implementation written in pure Go, exposing both low-level (plumbing) and high-level (porcelain) operations through an idiomatic Go API. It supports pluggable storage backends such as in-memory filesystems via the Storer interface, enabling Git functionality without shelling out to the git binary.
Use cases
- clone git repositories from a Go program without installing git
- read commits, trees, and blobs from a git repository programmatically
- build a git server or hosting service in Go
- implement custom git storage backends like in-memory or remote filesystems
- automate git operations in CI/CD or deployment tools
- inspect repository history for analytics or code search tools
When to choose
- you need to embed Git functionality in a Go application without depending on the git binary
- you need custom or in-memory storage for git objects
- you are building tools like Gitea, Flux, or Pulumi that manipulate repositories programmatically
- you want an idiomatic Go API rather than parsing git CLI output
When to avoid
- you need full compatibility with every git feature, as go-git implements a subset documented in COMPATIBILITY.md
- you just need to run git commands in scripts where shelling out to git is simpler
- you need maximum performance on very large repositories where the native git binary may be faster
Facets
library · maturity active
version-control developer-tools file-system http-client version-control developer-tools go cross-platform git git-client git-server plumbing porcelain pure-go in-memory-storage command-line
5 sources
- readme: https://github.com/go-git/go-git · fetched 2026-08-28 · f2a08db2d4cd
- homepage: https://pkg.go.dev/github.com/go-git/go-git/v6 · fetched 2026-08-29 · 9adfd246589c
- site_page: https://pkg.go.dev/about · fetched 2026-08-29 · 757852027879
- site_page: https://go.dev/about · fetched 2026-08-29 · 8b6453863a90
- site_page: https://go.dev/project · fetched 2026-08-29 · d5ca00bb378b
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| go-git/go-git | main | 98 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem