Ken*_*ada 14 python git gitpython
长SHA可以得到如下:
repo = git.Repo(search_parent_directories=True)
sha = repo.head.object.hexsha
Run Code Online (Sandbox Code Playgroud)
短的怎么样?(简称SHA
由回购的规模决定,所以它不应该像sha[:7]
)
lem*_*ead 12
据我所知,gitpython Commit
对象不直接支持short sha.但是,您可以使用gitpython的支持直接调用git来检索它:
short_sha = repo.git.rev_parse(sha, short=4)
Run Code Online (Sandbox Code Playgroud)
这相当于跑步
git rev-parse --short=4 ...
Run Code Online (Sandbox Code Playgroud)
在命令行上,这是获取短哈希的常用方法.这将返回长度> = 4的最短可能的明确散列(您可以传入较小的数字,但由于git的内部min为4,它将具有相同的效果).
您将需要使用here 的short
参数rev-parse
来生成可以唯一标识提交的最小SHA。基本上,short
会调用内部git API并返回SHA的最短长度字符串,即使您传递的值非常短,它也可以唯一标识提交。如此有效,您可以执行以下操作,这将始终为您提供最短的SHA(我short=1
经常强调这一点):
In [1]: import git
In [2]: repo = git.Repo(search_parent_directories=True)
In [3]: sha = repo.head.object.hexsha
In [4]: short_sha = repo.git.rev_parse(sha, short=1)
In [5]: short_sha
Out[5]: u'd5afd'
Run Code Online (Sandbox Code Playgroud)
您可以在git方面阅读有关此内容的更多信息。另外,如git-rev-parse的手册页所述,-- short默认情况下将其值设为7,最小值为4。
--short=number
不要输出对象名称的完整SHA-1值,而是尝试将它们缩写为较短的唯一名称。如果未指定长度,则使用7。最小长度为4。
对于 gitpython 3.1.15,与其他答案相比,似乎有一种更短的获取哈希的方法。
你可以简单地做
hash = repo.git.rev_parse(repo.head, short=True)
Run Code Online (Sandbox Code Playgroud)
您不需要显式获取
sha = repo.head.commit.hexsha
Run Code Online (Sandbox Code Playgroud)
第一的。
归档时间: |
|
查看次数: |
5995 次 |
最近记录: |