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.
Requirements
Python >= 3.7
- Git 1.7.0 or newer
It should also work with older versions, but it may be that some operationsinvolving remotes will not work as expected.
GitDB - a pure python git database implementation
typing_extensions >= 3.7.3.4 (if python < 3.10)
Installing GitPython
Installing GitPython is easily done usingpip. Assuming it isinstalled, just run the following from the command-line:
# pip install GitPython
This command will download the latest version of GitPython from thePython Package Index and install itto your system. More information aboutpip
and pypi can be foundhere:
Alternatively, you can install from the distribution using thesetup.py
script:
# python setup.py install
Note
In this case, you have to manually installGitDB as well. It would be recommended to use thegit source repository in that case.
Limitations
Leakage of System Resources
GitPython is not suited for long-running processes (like daemons) as it tends toleak system resources. It was written in a time where destructors (as implementedin the__del__ method) still ran deterministically.
In case you still want to use it in such a context, you will want to search thecodebase for__del__ implementations and call these yourself when you see fit.
Another way assure proper cleanup of resources is to factor out GitPython into aseparate process which can be dropped periodically.
Getting Started
GitPython Tutorial - This tutorial provides a walk-through of some ofthe basic functionality and concepts used in GitPython. It, however, is notexhaustive so you are encouraged to spend some time in theAPI Reference.
API Reference
An organized section of the GitPython API is atAPI 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 unit tests:
$ python -m unittest
Questions and Answers
Please use stackoverflow for questions, and don’t forget to tag it withgitpython 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 formore information.