【问题标题】:how to get last commit id of the git repo in python如何在python中获取git repo的最后提交id
【发布时间】:2018-10-01 20:45:43
【问题描述】:

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

我已经尝试过类似下面的 git 命令,但我在 python 脚本中需要相同的命令。

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

$ git rev-parse @~ 第二个最新输出:97a90650792efdbef3f6abb92bd6108c11889cc6

【问题讨论】:

    标签: python git


    【解决方案1】:

    您可以使用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 提供了更多内置工具。

    【讨论】:

    • 要将其作为一个干净的字符串进行扩充,如下所示:subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip().decode('ascii') 按照stackoverflow.com/questions/14989858/… 和其他地方进行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多