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

给定长git提交,如何安全地获得短提交,git,bitbucket,git-commit,git-hash,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 "$

如果我查询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请求短哈希?在这个问题上,我正在寻找一种可靠的方法来获取分支的最新提交。

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


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

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


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

没有可靠的方法。按照惯例,小项目前7个字符,大项目前8个字符,大项目前10个字符。几乎可以肯定的是,你总是吃前10个是安全的。一个今天有效的短哈希可能不是明天。坚持用长的,没有可靠的方法。按照惯例,小项目前7个字符,大项目前8个字符,大项目前10个字符。几乎可以肯定的是,你总是吃前10个是安全的。一个今天有效的短哈希可能不是明天。坚持使用长散列。听起来最好坚持使用长散列,因为有一天你可能想要普遍唯一的散列,而不仅仅是一次回购的唯一散列。听起来最好坚持使用长散列,因为有一天你可能想要普遍唯一的散列,而不仅仅是一次回购的唯一散列。