এইভাবেই গিট কোনও ফাইলের জন্য SHA1 গণনা করে (বা গিট শর্তে একটি "ব্লব"):
sha1("blob " + filesize + "\0" + data)
সুতরাং আপনি সহজেই গিট ইনস্টল না করে নিজেই এটি গণনা করতে পারেন। মনে রাখবেন যে "\ 0" হ'ল নুয়াল-বাইট, একটি দ্বি-চরিত্রের স্ট্রিং নয়।
উদাহরণস্বরূপ, একটি খালি ফাইলের হ্যাশ:
sha1("blob 0\0") = "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"
$ touch empty
$ git hash-object empty
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
আরেকটি উদাহরণ:
sha1("blob 7\0foobar\n") = "323fae03f4606ea9991df8befbb2fca795e648fa"
$ echo "foobar" > foo.txt
$ git hash-object foo.txt
323fae03f4606ea9991df8befbb2fca795e648fa
এখানে পাইথন বাস্তবায়ন:
from hashlib import sha1
def githash(data):
s = sha1()
s.update("blob %u\0" % len(data))
s.update(data)
return s.hexdigest()