【发布时间】:2014-01-27 14:40:26
【问题描述】:
我想在不使用git hash对象函数的情况下计算git SHA hash,即我想使用shasum函数来计算。
我知道对于以下情况
body="tree 491e9405120eaaa57cce3938fd38508d85a5e08b
parent 8550f0f1a7e32fb1bb0933b0294c116a8dbe6dce
author user <me@example.com> 1390718030 +0000
committer user <me@example.com> 1390718030 +0000
This is a test"
echo $body | git hash-object -w --stdin #755481b921f13bcfd731d74287a0c5847519ee81
l=`expr ${#body} + 1`
echo -e 'blob $l\0$body' | shasum #755481b921f13bcfd731d74287a0c5847519ee81
哈希是相同的。但是如果我在 hash-object 中使用 -t commit 选项,我会得到一个不同的 Hash。如何使用 shasum 计算提交哈希?
git hash-object -t commit --stdin <<< "$body" #b4c45adbbe35d3d3c73de48d039a8e3038f5ec54
【问题讨论】: