algorithm - git 使用什么算法来查找部分 sha-1(至少前 4 个字符)的提交?

标签 algorithm git sha

git 用于通过部分 sha-1(至少前 4 个字符)查找提交的算法是什么。 是否有此类算法的任何实现?

最佳答案

在给定部分“01234”(“short SHA1”)的情况下找到完整 SHA1 的一种非常简单(但无效)的方法是:

git rev-list --all --objects | grep ^01234

实际的做法是:

git rev-parse --verify 01234

commit 6269b6b 中有说明

Teach get_describe_name() to pass the disambiguation hint down the callchain to get_short_sha1().

所以你可以看到sha1_name.c#get_short_sha1()中的算法函数,它将查找:

关于algorithm - git 使用什么算法来查找部分 sha-1(至少前 4 个字符)的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627193/

相关文章:

algorithm - 如何根据位置数据计算(计数)轨道数?

algorithm - 汽车加油问题(贪心算法),复杂度为 O(n) 的嵌套 while 循环

git - 如何使用 git log 只获取带路径的文件名?

java - 如何逐字节将 SHA-1 应用于大的十六进制数?

security - SHA-256 哈希值能否从相同数据的 SHA-512 哈希值导出?

c - 查找字符串是否为大小写混合的最有效方法

algorithm - (n 选择 k) 和长度为 n 的位串之间的双射,其中设置了 k 位

android - Eclipse 内部错误导致无法使用 git

git - 查找 git 中删除 "deleted by us"文件的时间

php - 为什么 PHP 中的 CRYPT_BLOWFISH 产生比 SHA 更短的散列时被认为更好