概述/安装

GitPython 是一个用于与 Git 存储库交互的 Python 库,高级别的类似于 Git porcelain,低级别的类似于 Git plumbing。

它提供了 Git 对象的抽象,以便于访问存储库数据,并且还允许您使用纯 Python 实现,或更快但资源更密集的 Git 命令实现更直接地访问 Git 存储库。

对象数据库实现针对处理大量对象和大型数据集进行了优化,这是通过使用低级结构和数据流实现的。

需求

  • Python >= 3.7

  • Git 1.7.0 或更新版本

    它也应该能与旧版本一起工作,但可能一些涉及 remote 的操作将不能像预期那样工作。

  • GitDB - 纯 python git 数据库实现

  • typing_extensions >= 3.7.3.4(如果 python < 3.10)

安装 GitPython

使用 pip 可以很容易地安装 GitPython。假设 pip 已经安装好了,只需在命令行中运行以下内容:

# pip install GitPython

该命令将从 Python Package Index 下载最新版本的 GitPython,并将其安装到你的系统。关于 pip 和 pypi 的更多信息可以在这里找到:

或者,您可以使用 setup.py 脚本:

# python setup.py install

注解

在这种情况下,你也必须手动安装 GitDB。在这种情况下,建议使用 git 源码库

局限性

系统资源泄漏

GitPython 不适合长时间运行的进程(如守护进程),因为它容易泄漏系统资源。它是在一个解构器(如在 __del__ 方法中实现的)仍然确定性地运行的时代写的。

如果你仍然想在这样的情况下使用它,你要在代码库中搜索 __del__ 的实现,并在你认为合适的时候自己调用这些。

另一种确保正确清理资源的方法是将 GitPython 分解成一个单独的进程,该进程可以定期删除。

入门

  • GitPython 教程 - 本教程对 GitPython 的一些基本功能和概念进行了介绍。然而,它并不详尽,所以我们鼓励你在 API 参考 中花费一些时间。

API 参考

GitPython API 的一个有组织的部分位于 API 参考

源代码

Gitpython 的 Git 仓库可在 GitHub 上获得,可在以下网址浏览:

并且克隆使用

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

初始化所有子模块以获取所需的依赖项

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

最后通过运行单元测试来验证安装:

$ python -m unittest

问题和答案

请使用 stackoverflow 提问,不要忘记用 gitpython 确保合适的人及时看到问题。

http://stackoverflow.com/questions/tagged/gitpython

问题跟踪器

问题跟踪程序由 Github 托管:

https://github.com/gitpython-developers/GitPython/issues

许可证信息

GitPython 是根据新的 BSD 许可证获得许可的。有关详细信息,请参阅许可证文件。