我想知道存储库中确切的 git 提交 ID。可能就像最新的提交(最近的)和第二个最近的提交。
我已经尝试过如下所示的 git 命令,但我需要在 python 脚本中使用相同的命令。
$ git rev-parse @最近的输出:669ec6662bedc7a9962bef83612a33522a8e4fb8
$ git rev-parse @~第二个最新输出:97a90650792efdbef3f6abb92bd6108c11889cc6
您可以使用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
Run Code Online (Sandbox Code Playgroud)
通过列表理解也可以实现同样的效果。该解决方案更具可扩展性,因为您不需要添加额外的子流程调用:
commits = ['HEAD', 'HEAD^']
def get_git_revisions_hash2():
return [subprocess.check_output(['git', 'rev-parse', '{}'.format(x)])
for x in commits]
Run Code Online (Sandbox Code Playgroud)
还有GitPython模块,它为您提供了 git 接口。你可以阅读文档,它为 git 提供了更多内置工具。