Introducing the Git Database API

The Git Database API gives you access to read and write raw Git objects to your Git database on GitHub Enterprise and to list and update your references (branch heads and tags).

This basically allows you to reimplement a lot of Git functionality over our API - by creating raw objects directly into the database and updating branch references you could technically do just about anything that Git can do without having Git installed.

Git Database API functions will return a 409 Conflict if the Git repository is empty or unavailable. An unavailable repository typically means GitHub Enterprise is in the process of creating the repository. For an empty repository, you can use the Create a file endpoint to create content and initialize the repository so you can use the Git Database API. Contact your GitHub Enterprise site administrator if this response status persists.

git db

For more information on the Git object database, please read the Git Internals chapter of the Pro Git book.

As an example, if you wanted to commit a change to a file in your repository, you would:

It might seem complex, but it's actually pretty simple when you understand the model and it opens up a ton of things you could potentially do with the API.