如何使用gitpython查询特定git repo分支的日志?

2024-05-20 11:54:49 发布

您现在位置:Python中文网/ 问答频道 /正文

目标:使用gitpython在python脚本中执行以下git命令。

命令行版本:

git log -L :dataLoad:/home/ubuntu/projects/alpha-draw/py/enigma.py

脚本版本:

^{pr2}$

这将导致以下错误:

git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
cmdline: git log -L :dataLoad:/home/ubuntu/projects/alpha-draw/py/enigma.py
stderr: 'fatal: -L argument not 'start,end:file' or ':funcname:file':  :dataLoad:/home/ubuntu/projects/alpha-draw/py/enigma.py'

当我将命令行版本从错误直接复制粘贴到。。。好吧,命令行按预期工作。

我的假设是gitpython正在查看主分支,而实际工作的分支不是主分支。

这一假设的理由:

1)我发现很多帖子讨论命令的使用

repo.git.checkout("<branch>")

这样可以让我知道我的分支机构是最新的。使用此命令后,当我从repo查询提交时,我仍然从master获取提交。

2)另一个认为这是gitpython中没有成功更改分支的原因是下面的示例。

commits = list(repo.iter_commits('<branch>'))[:5]

当我更改分支时,我得到检索与指定的关联的提交的预期结果。

我愿意使用其他pythongit库。无论如何都不与gitpython绑定。我想另一个选择是放弃git库,通过python命令行调用与git交互。

感谢所有帮助,谢谢!


Tags: 命令行pygit命令版本alphahomeubuntu