我想知道存储库中确切的git commit id。 可能像最近的提交(最近的)和第二次最近的提交。
我已经尝试过如下的git命令,但我需要在python脚本中使用相同的命令。
$ git rev-parse @ 最新输出:669ec6662bedc7a9962bef83612a33522a8e4fb8
$ git rev-parse @〜第二次最新产出:97a90650792efdbef3f6abb92bd6108c11889cc6
答案 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提供了更多的内置工具。