CL-Git is an interface to the C library libgit2. The API is an almost complete exposure of the underlying library.
License LGPL 3
This is the HTML documentation, but there is also, pdf
and info
The source is available on SourceHut.
GIT> (resolve
(get-object 'reference "HEAD"
(open-repository
(merge-pathnames #p"projects/lisp/cl-git"
(user-homedir-pathname)))))
#<COMMIT 276EE31DD4F35E49AEB7C7FCFB8094D557A25AD1 {100817E383}>
(#<REFERENCE refs/heads/master {100817C403}> #<REFERENCE HEAD {100817C0C3}>)
GIT> (tree-directory (commit-tree *))
(#<TREE-BLOB .gitignore (weak) {100A8A1E73}>
#<TREE-BLOB AUTHORS (weak) {100A8A3E33}>
#<TREE-BLOB CHANGELOG (weak) {100A8A5483}>
...)