如何使用 gitpython 暂存更改

How to stage changes with gitpython

有谁知道 gitpython 中 git commit -a 的等价物是什么?

我已尝试 repo.index.commit,但看不到如何添加 -a 选项。 repo.index.add 仅添加新文件,不添加已修改的现有文件。它似乎不支持 update 功能,如 git add -u.

我可以做类似 repo.git.commit('-a') 甚至

的事情
repo.git.add('-u')
repo.index.commit(comment)

但我认为高级接口应该能够做到这一点。我错过了什么吗?

提前致谢,

埃弗特

你没有遗漏任何东西。 GitPython 的行为更像是管道系统,而不是 git add -ugit commit.

的瓷器

因此,建议使用提供的 git 命令包装器来快速完成工作,如您的示例中所示(例如 repo.git.add(update=True))。

即使完全在 GitPython 中实现任何东西是可能的,它也不会像各自的原生 git 实现那样表现得那么好或被证实。

GitPython 开始变得强大,如果你想通过一个相对方便的 pythonic API 快速方便地访问 git 存储库数据。示例包括访问分支和标记信息,或详细查询提交。