gpt4 book ai didi

git - 为什么我没有得到相同的 SHA-1?

转载 作者:行者123 更新时间:2023-12-05 08:37:37 27 4
gpt4 key购买 nike

我尝试了以下两个命令:

philip@X230:~/Desktop/learn_git$ echo 'what is up, doc?' | git hash-object --stdin
7108f7ecb345ee9d0084193f147cdad4d2998293

philip@X230:~/Desktop/learn_git$ echo 'blob 16\u0000what is up, doc?' | openssl sha1
(stdin)= 5bc40a1cd865de7a0a4641d3d059b1216ed9042c

我想知道为什么我没有得到相同的 SHA-1

最佳答案

两件事:

  1. echo 'what is up, doc?' 输出 17 个字符,包括末尾的换行符。您应该两次都使用 echo -n(假设是 bash)来删除末尾的换行符,或者将手动构建的 blob 的长度调整为 17。

  2. 你的 \u0000 转义是无效的(测试它,运行 echo 'blob 16\u0000what is up, doc?' 到控制台而不用管道进入 sha1 ).您需要 -e 选项(同样假设为 bash)来使 echo 解释任何转义。

如果你这样做

echo -e 'blob 17\u0000what is up, doc?' | openssl sha1

结果是

(stdin)= 7108f7ecb345ee9d0084193f147cdad4d2998293

很好地匹配 git hash-object

关于git - 为什么我没有得到相同的 SHA-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65160623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com