gitオブジェクトのSHA-1コードの計算はなかなか合わなかったので調べてみてやっと解明できました。
#blobオブジェクト
- blob idをblob-id.txtに保存
- blobオブジェクトの内容を確認
$cat blob-id.txt | git cat-file --batch
ce013625030ba8dba906f756967f9e9ca394464a blob 6
hello
3.blobオブジェクトの内容をblob-batch.txtに保存
cat blob-id.txt | git cat-file --batch > blob-batch.txt
4.blob-batch.txtをバイナリーエディタで修正して、blob-obj.txtに保存
-
先頭のSha-1コードを削除する
-
コンテンツサイズの後の「0A」を「00」に変更
-
最後の「0A」を削除
5.SHA-1コードを確認
$cat blob-obj.txt | openssl sha1
ce013625030ba8dba906f756967f9e9ca394464a
gitで生成したオブジェクトのSHA-1コードと一致しました。
他のオブジェクトタイプも似たような方法で生成しています。
#参考資料
Git objects v2