给定长git commit如何安全地获得短提交

时间:2019-05-29 23:47:31

标签: git bitbucket git-commit git-hash

如果我在bitbucket api中查询提交,则得到的是长版本:

bitbucket_curl(){
    curl -H 'Authorization:Basic YW1JyKg==' "https://api.bitbucket.org$@"
}

commits="$(bitbucket_curl '/2.0/repositories/interos/datavana/commits/alex/dockerize?pagelen=3')"

latest_commit="$(echo "$commits" | jq -r '.values[0].hash')"

长时间提交:c56cefbd0c81142558cf814cba7d7cd75d7cb6a7

有没有办法可靠地获取短提交哈希?它不像最后10个字符吗?也许有一种方法可以从Bitbucket API请求短哈希?关于这一主题,我正在寻找一种可靠的方法来获取分支的最新提交。

1 个答案:

答案 0 :(得分:2)

我不太了解Bitbucket API,也不了解其端点是否需要完整的SHA-1哈希,但是据我所知,还没有正式的简短的提交哈希。唯一的一般要求是,所使用的散列的片段可以正确解析为单个提交。

Bitbucket网站似乎仅显示SHA-1哈希的前7个字符。大约有780亿个长度为7的不同哈希值,因此不可能在单个页面上发生冲突。