APIs (libgit2 main)
A commit and information about how it was looked up by the user.
Apply patches to the working directory or index
Attribute management routines
Specify a file's most recent changes per-line
A blob represents a file in a git repository.
Branch creation and handling
A data structure to return data to callers
TLS and SSH certificate handling
Update the contents of the working directory
Cherry-pick the contents of an individual commit
Clone a remote repository to the local disk
A representation of a set of changes in the repository
Base platform functionality
Per-repository, per-user or per-system configuration
Authentication and credential management
Utility functions for credential management
Deprecated functions and values
Describe a commit in reference to tags
Indicate the differences between two versions of the repository
Produce email-ready patches
Error handling routines and variables
Filters modify files during checkout or commit
libgit2 library initializer and shutdown functionality
Graph traversal routines
Ignore particular untracked files
Index (aka "cache" aka "staging area")
Packfile indexing
Mailmaps provide alternate email addresses for users
Merge re-joins diverging branches of history
Commit messages
Low-level networking functionality
Notes are metadata attached to an object
Objects are blobs (files), trees (directories), commits, and annotated tags
An object database manages the storage of git objects
Object database backends manage the storage of git objects
Object IDs
An array of object IDs
Git pack management routines
Patches store the textual diffs in a delta
Specifiers for path matching
TLS proxies
Rebase manipulates commits, placing them on a new parent
A database for references (branches and tags)
Reference logs store how references change
References point to a commit; generally these are branches and tags
Refspecs map local references to remote references
Remotes are where local repositories fetch from and push to
The repository stores revisions for a source tree
Reset will update the local repository to a prior state
Cherry-pick the inverse of a change to "undo" its effects
Parse the textual revision information
Traverse (walk) the commit graph (revision history)
Signatures are the actor in a repository and when they acted
Stashes stores some uncommitted state in the repository
Status indicates how a user has changed the working directory and index
An array of strings for the user to free
Submodules place another repository's contents within this one
A (nearly) immutable pointer to a commit; useful for versioning
Tracing functionality to introspect libgit2 in your application
Transactional reference handling
Transports are the low-level mechanism to connect to a remote server
Trees are collections of files and folders to make up the repository hierarchy
libgit2 base & compatibility types
The version of libgit2
Additional working directories for a repository
Custom memory allocators
Low-level Git commit creation
Commit graphs store information about commit relationships
Custom configuration database backends
Low-level credentials implementation
Low-level diff utilities
Advanced git email creation routines
Advanced error handling
Custom filter backends and plugins
Signatures for file similarity comparison
Low-level index manipulation routines
A custom object database backend for storing objects in-memory
Custom merge drivers
Incremental multi-pack indexes
Object database backends for custom object storage
Custom OpenSSL functionality
Custom path handling
Custom reference database backends for refs storage
Low-level git reference creation
Low-level remote functionality for custom transports
Custom repository handling
Streaming file I/O functionality
Custom transport registration interfaces and functions