计算哈希对象中的错误,内容为“1”字符?
bug in calculation hash-object , with content of '1' character?
我有一个 git 文件(例如 file1.txt),里面有字符 1.
echo -e 1 | git hash-object --stdin => d00491...39d4d
.
但是
不行
echo -en 'blob 2\n' | shasum ==>a1ff5...f6df
因为它不将 1
视为字符并将 </code> 计算为单独的字符。<code>=> blob 2
我发现这种类型的转换不适用于数字内容。
但以字母开头就可以了!!比如.
echo -e 'blob 2[=15=]w' | shasum ==> e556b8...52ef
.
echo w | git hash-object --stdin ==> e556b830c...052ef
。
从纯数字内容开始计算散列对象有什么想法吗?
echo -en 'blob 2\n' | cat -v
没有产生您想要的结果,结果是 blob 2^A
而不是 blob 2^@1
。
你想要的是
echo -en 'blob 2[=11=]001\n' | cat -v
blob 2^@1
这是因为 [=15=]
开始了 echo
的数字序列,然后 echo
需要最多 3 位数字。即 </code> for <code>echo
是 1 个字符,代码为 1;要生成 [=15=]
+ 1
您需要使用 [=22=]00
来表示代码为 0 的字符,那么下一个字符是 1.
echo -en 'blob 2[=12=]001\n' | sha1sum
d00491fd7e5bb6fa28c517a0bb32b8b506539d4d -
瞧!
我有一个 git 文件(例如 file1.txt),里面有字符 1.
echo -e 1 | git hash-object --stdin => d00491...39d4d
.
但是
不行
echo -en 'blob 2\n' | shasum ==>a1ff5...f6df
因为它不将 1
视为字符并将 </code> 计算为单独的字符。<code>=> blob 2
我发现这种类型的转换不适用于数字内容。
但以字母开头就可以了!!比如.
echo -e 'blob 2[=15=]w' | shasum ==> e556b8...52ef
.
echo w | git hash-object --stdin ==> e556b830c...052ef
。
从纯数字内容开始计算散列对象有什么想法吗?
echo -en 'blob 2\n' | cat -v
没有产生您想要的结果,结果是 blob 2^A
而不是 blob 2^@1
。
你想要的是
echo -en 'blob 2[=11=]001\n' | cat -v
blob 2^@1
这是因为 [=15=]
开始了 echo
的数字序列,然后 echo
需要最多 3 位数字。即 </code> for <code>echo
是 1 个字符,代码为 1;要生成 [=15=]
+ 1
您需要使用 [=22=]00
来表示代码为 0 的字符,那么下一个字符是 1.
echo -en 'blob 2[=12=]001\n' | sha1sum
d00491fd7e5bb6fa28c517a0bb32b8b506539d4d -
瞧!