当前位置: > > > > 如何使用 golang 计算字符串的 git blob sha
来源:stackoverflow
2024-04-20 12:27:40
0浏览
收藏
欢迎各位小伙伴来到,相聚于此都是缘哈哈哈!今天我给大家带来《如何使用 golang 计算字符串的 git blob sha》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!
问题内容
给定一个字符串,如何计算它的 git BLOB SHA。我尝试使用golang提供的api计算字符串上的sha,但它与git blob sha不匹配。
如何使用 golang 获取与 git blob sha 相同的 sha
正确答案
git 计算 blob sha 的方式有点不同。它在前面添加一个标头 blob <length>\x00<content>
这里<length>
是内容的字节长度,\x00
是结束分隔符,<content>
是实际的内容字符串。
我创建了下面的函数,它返回给定字符串的 git blob sha
func computeGitBlobSHA(s string) string { p := fmt.Sprintf("blob %d\x00", len(s)) h := sha1.New() h.Write([]byte(p)) h.Write([]byte(s)) return hex.EncodeToString(h.Sum([]byte(nil))) }
因此调用 computegitblobsha("hello")
将返回 5ab2f8a4323abafb10abb68657d9d39f1a775057
,这是实际的 git sha。
请拨打 查看此信息
如果需要,您可以使用 echo -n 'hello' | 进行验证。 git hash-object --stdin
本篇关于《如何使用 golang 计算字符串的 git blob sha》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注公众号!