Overview / Install

GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.

It provides abstractions of git objects for easy access of repository data, and additionally allows you to access the git repository more directly using either a pure python implementation, or the faster, but more resource intensive git command implementation.

The object database implementation is optimized for handling large quantities of objects and large datasets, which is achieved by using low-level structures and data streaming.


  • Python 2.7 or newer

    Since GitPython 2.0.0. Please note that python 2.6 is still reasonably well supported, but might deteriorate over time.

  • Git 1.7.0 or newer

    It should also work with older versions, but it may be that some operations involving remotes will not work as expected.

  • GitDB - a pure python git database implementation

  • Python Nose - used for running the tests

  • Mock by Michael Foord used for tests. Requires version 0.5

Installing GitPython

Installing GitPython is easily done using pip. Assuming it is installed, just run the following from the command-line:

# pip install gitpython

This command will download the latest version of GitPython from the Python Package Index and install it to your system. More information about pip and pypi can be found here:

Alternatively, you can install from the distribution using the setup.py script:

# python setup.py install


In this case, you have to manually install GitDB as well. It would be recommended to use the git source repository in that case.

Getting Started

  • GitPython Tutorial - This tutorial provides a walk-through of some of the basic functionality and concepts used in GitPython. It, however, is not exhaustive so you are encouraged to spend some time in the API Reference.

API Reference

An organized section of the GitPthon API is at API Reference.

Source Code

GitPython’s git repo is available on GitHub, which can be browsed at:

and cloned using:

$ git clone https://github.com/gitpython-developers/GitPython git-python

Initialize all submodules to obtain the required dependencies with:

$ cd git-python
$ git submodule update --init --recursive

Finally verify the installation by running the nose powered unit tests:

$ nosetests

Questions and Answers

Please use stackoverflow for questions, and don’t forget to tag it with gitpython to assure the right people see the question in a timely manner.


Issue Tracker

The issue tracker is hosted by github:


License Information

GitPython is licensed under the New BSD License. See the LICENSE file for more information.