基于此:
https://stackoverflow.com/questions/7225313/how-does-git-compute-file-hashes/7225329#7225329
所以:
from hashlib import sha1
def get_blob_sha(s):
# s是个字符串,也就是文件里的内容。
sha1_obj = sha1()
content = s.encode('ascii') # 以二进制编码
content = b'blob %d\0' % len(content) + content
sha1_obj.update(content)
return sha1_obj.hexdigest()