概述/安装
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
局限性
系统资源泄漏
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 确保合适的人及时看到问题。
问题跟踪器
问题跟踪程序由 Github 托管:
许可证信息
GitPython 是根据新的 BSD 许可证获得许可的。有关详细信息,请参阅许可证文件。