Clone this wiki locally
[INCOMPLETE LIST. MIGHT CHANGE DRASTICALLY]
Read and write repository configurations and settings.
Open a repository with a given path, retrieve and update information like user information, config variables, description, branches, tags, remotes, submodules etc.
File and diff viewing Git diff, blame, show file/blob contents.
API for manipulating repository index.
Retrieve state of the repository index (dirty/clean) Information on files in the index, their hash, size, mime type etc API to add, ignore, stage, unstage and reset files API to view staged and unstaged data.
API for git branching API for git branch, merge, checkout etc
Network & initialization features.
Provide API for init, push, pull, clone etc.
History walking from standard reference points like branches, tags etc and more advanced options like shortlog and log –oneline.
API history rewrites, undoing, rebase
Git revert, reset, rebase, interactive rebase, reorder, squashing etc
API for managing git submodules
API to add new commits to the repository git commit, amend etc
API for accessing notes, stashes, cherry-picking
API for dealing with git object store git gc, bundle, purne, fsck
Asynchronous API Provide a callback based asynchronous API for huge performance improvements. Instead of leaving it to the end as a big step, this will be implemented gradually as the project progress.