如何在python中获取git repo的最后一个提交id

时间:2018-04-21 07:23:08

标签: python git

我想知道存储库中确切的git commit id。 可能像最近的提交(最近的)和第二次最近的提交。

我已经尝试过如下的git命令,但我需要在python脚本中使用相同的命令。

  

$ git rev-parse @ 最新输出:669ec6662bedc7a9962bef83612a33522a8e4fb8

     

$ git rev-parse @〜第二次最新产出:97a90650792efdbef3f6abb92bd6108c11889cc6

1 个答案:

答案 0 :(得分:2)

您可以使用subprocess模块执行此操作。此代码将返回包含最后两个提交的列表,其中列表中的第一个项目是最新的。

import subprocess

def get_git_revisions_hash():
    hashes = []
    hashes.append(subprocess.check_output(['git', 'rev-parse', 'HEAD']))
    hashes.append(subprocess.check_output(['git', 'rev-parse', 'HEAD^']))
    return hashes

列表理解也可以实现同样的目的。此解决方案更具扩展性,因为您不需要添加其他子进程调用:

commits = ['HEAD', 'HEAD^']
def get_git_revisions_hash2():
    return [subprocess.check_output(['git', 'rev-parse', '{}'.format(x)])
            for x in commits]

还有GitPython模块,它为您提供了git的界面。你可以阅读文档,它为git提供了更多的内置工具。