git的commit id是根据什么来算出那个SHA1值的?

git的commit id是根据什么来算出那个SHA1值的?

阅读 15.1k
1 个回答

在Git中,每个commit id的信息(如f2c8ea6ea648d4b097f2e552b674f856a86c31cc)就是一个sha1 hash值,如果想查看自己分支中的coomit id执行git log即可。如图

clipboard.png

生成这个hash值,它是对那个commit是Git仓库中内容和头信息Header的一个校验和checksum。Linux kernel开创者和Git的开发者——Linus说,Git使用了sha1并非是为了安全性,而是为了数据的完整性;它可以保证,在很多年后,你重新checkout某个commit时,一定是它多年前的当时的状态,完全一摸一样,完全值得信任。在Git中,根据commit的sha1值40个十六进制数字进行了简单的划分目录,以前2位数字作为目录名,其下面是剩余38位数字组成的一个文件名。希望对你有帮助。具体请参考 Git Object

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进