我有一个git文件(例如file1.txt),在其中我有字符1。
echo -e 1 | git hash-object --stdin => d00491...39d4d
。
但它并不好
echo -en 'blob 2\01\n' | shasum ==>a1ff5...f6df
因为它不考虑1
作为字符并计算\01
作为seprate character.=> blob 2
我发现这种类型的转换不使用数字内容。
但从字母表开始很好!!如 。
echo -e 'blob 2\0w' | shasum ==> e556b8...52ef
。
echo w | git hash-object --stdin ==> e556b830c...052ef
。
对于calc hash-object的任何想法,从纯数字内容开始?
echo -en 'blob 2\01\n' | cat -v
没有产生你想要的,结果是blob 2^A
而不是blob 2^@1
。
你想要的是什么
echo -en 'blob 2\00001\n' | cat -v
blob 2^@1
这是因为\0
为echo
启动数字序列,然后echo
预计最多3位数。那就是\01
的echo
是1个字符,代码为1;要生成\0
+ 1
你需要使用\0000
代码为0的字符,然后下一个字符是1。
echo -en 'blob 2\00001\n' | sha1sum
d00491fd7e5bb6fa28c517a0bb32b8b506539d4d -
瞧!