我想在python(这是学习项目)中编写一个模块来增强我的git体验。是否有各种git命令的python模块?至少基本的(commit/diff/log/add)?python的Git提交
我看到GitPython但我找不到(新)提交的支持;它更多的是一个回购浏览框架,而不是一个完整的GIT界面。 (或者我错过了什么?)
此外,如果有一个python模块的所有这一点,这将是可取的,或从python代码执行shell命令?
我想在python(这是学习项目)中编写一个模块来增强我的git体验。是否有各种git命令的python模块?至少基本的(commit/diff/log/add)?python的Git提交
我看到GitPython但我找不到(新)提交的支持;它更多的是一个回购浏览框架,而不是一个完整的GIT界面。 (或者我错过了什么?)
此外,如果有一个python模块的所有这一点,这将是可取的,或从python代码执行shell命令?
在GitPython你create a commit from an index object。
在libgit2中你create a commit from a repository object。
你也可能想看看这个问题:
Git被设计为由“管道”和“瓷器”组成。管道组件构成基础,低级系统:管理对象,存储库,远程控制等。另一方面,瓷器意味着更多用户友好的使用管道的高级工具。在历史上,只有最基本的/性能关键的部分(主要是管道)在C中实现,其余部分使用shell/perl脚本。更便携,越来越多的代码C.
被改写在这种背景下,我建议只使用系统调用git的可执行文件的Python包装。把你的代码看作Git瓷器的一部分。相比于使用专业图书馆:
PRO
git
命令你熟悉CONTRA
git
调用的命令行输出。
+1 libgit2。 –
非常感谢“git python体验”链接。我可以根据这个决定做出决定。 – Sailesh
你应该记住,(由于日期)这些问题的答案没有提及基于libgit2 Python绑定,这是有趣的,因为libgit2库是用Git仓库交互的可重入的库。另外,只需使用子进程模块来调用git命令(就像@Ferdinand Beyer所建议的那样)在很多脚本中都可以正常工作,并且可能是您所需要的。 –