gpt4 book ai didi

gitpython - 如何使用 git python 获取第一个父提交的列表?

转载 作者:行者123 更新时间:2023-12-05 04:01:52 27 4
gpt4 key购买 nike

我想从 git python 运行这个命令的等价物,但还没有找到实现它的方法。

git rev-list --first-parent commit1..HEAD

我希望将该命令的结果放入 git python 的 Commit 对象的可迭代对象中。我试过 repo.iter_commits 但它似乎无法接受不带参数的 rev-list 的参数。

我的用例是“commit1”将是分支所基于的提交,我将在 check out 分支时运行此代码。因此,即使存在来自分支“commit1”的合并提交,此命令也会给我提交到该分支的提交列表。

我也试过

repo.iter_commits('HEAD ^commit1')

但这会导致以下错误:git.exc.GitCommandError: Cmd('git') 由于退出代码(128) 而失败 命令行:git rev-list HEAD ^commit1 -- stderr: 'fatal: bad revision 'HEAD ^commit1'

但是,我可以跑

git rev-list HEAD ^commit1 --

在 bash 中运行良好。此外,该命令并没有真正提供我需要的东西。

最佳答案

我能够通过在 git python 中直接使用提交的父列表来获得我需要的东西。这是对我有用的片段:

       commits = list() 
c = repo.head.commit
while (True):
firstparent = c.parents[0]
if (firstparent != commit1):
c = firstparent
commits.append(c)
else:
break

上面的代码不处理第一次提交(没有 parent 。)

关于gitpython - 如何使用 git python 获取第一个父提交的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54908005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com