需要获取GitPython中最新合并的提交SHA id

需要获取GitPython中最新合并的提交SHA id,git,gitpython,Git,Gitpython,我在git中的默认分支是“开发”分支 我想将最新合并分支的提交id获取到我的“开发”分支。 使用git python可以吗 在命令行上我能做到 git log | grep Merge 然后选择最新的。 有没有办法用gitpython实现这一点 谢谢。一旦您有了分支头commit headcommit=repo.HEAD.commit,您就可以: 检查其父级数:lenheadcommit.parents 如果有,则采用其唯一父级:headcommit.parents[0] 重复此操作,直到找到

我在git中的默认分支是“开发”分支

我想将最新合并分支的提交id获取到我的“开发”分支。 使用git python可以吗

在命令行上我能做到

git log | grep Merge
然后选择最新的。 有没有办法用gitpython实现这一点


谢谢。

一旦您有了分支头commit headcommit=repo.HEAD.commit,您就可以:

检查其父级数:lenheadcommit.parents 如果有,则采用其唯一父级:headcommit.parents[0] 重复此操作,直到找到一个具有多个父级的提交:它将是您的合并提交。 这将效仿

OP建议:

headcommit = repo.head.commit 
while True: 
  headcommit = headcommit.parents[0] 
  if len(headcommit.parents) is not 1: break 
print (headcommit

分支头commit headcommit=repo.HEAD.commit后,您可以:

检查其父级数:lenheadcommit.parents 如果有,则采用其唯一父级:headcommit.parents[0] 重复此操作,直到找到一个具有多个父级的提交:它将是您的合并提交。 这将效仿

OP建议:

headcommit = repo.head.commit 
while True: 
  headcommit = headcommit.parents[0] 
  if len(headcommit.parents) is not 1: break 
print (headcommit

仅供参考,在命令行git log-1-merges上。@jthill谢谢,这正是我用gitpython寻找的。供参考,在命令行git log-1-merges上。@jthill谢谢,这正是我用gitpython寻找的。谢谢你的回答,我刚刚尝试过,``但它给了我上一次提交的提交shaid。不是最后一次合并提交。@Mr.Axe如果您的最后一次提交是合并提交,这是意料之中的。但是如果您的mast commit只有一个父级,那么您必须循环并获取它的父级,在那里重复测试。@Mr.Axe干得好。我在答案中加入了您的注释/代码以提高可视性。谢谢您的回答,我刚刚尝试过,``但它给了我上一次提交的提交sha id。不是最后一次合并提交。@Mr.Axe如果您的最后一次提交是合并提交,这是意料之中的。但是如果您的mast commit只有一个父级,那么您必须循环并获取它的父级,在那里重复测试。@Mr.Axe干得好。我已将您的注释/代码包含在答案中,以提高可视性。