我在GIT上工作很久了。
但是,我找不到‘提交Id’和'SHA1 -散列值‘之间的区别。
'Commit ID‘和’SHA1 1‘之间有什么区别?任何简单的例子说明都会很好。
发布于 2017-05-03 15:20:15
提交ID是用来标识提交的。有时,您将看到简写版本,它只是实际提交ID的前七个字符与完整的散列。
请考虑以下示例:
[master 42e2e5a] Added a new readme file to illustrate commit IDs.
1 file changed, 1 insertion(+)
create mode 100644 myreadme注意,它显示的是提交ID的简写版本,因为实际提交ID是40个十六进制字符,它们指定了一个160位的SHA-1散列。
示例
完全提交ID
git show -s --format=%H结果
42e2e5af9d49de268cd1fda3587788da4ace418a简写版
git show -s --format=%h结果
42e2e5a但请注意他们是一样的。
发布于 2017-05-03 15:47:55
我读过以前提供的答案,我认为有一点需要补充。一个修订总是指向一个sha1 (它实际上不是指向的,一个修订是由它的sha1 ID标识的,但是支持我),但是git的DB中的对象可以是:修订、树、块等等,它们都是由sha1 ID标识的。因此,修订意味着使用sha1 ID (来标识它.但是在修订版中还有其他的sha1 ID,比如父母、树对象),但是sha1 ID并不一定意味着它是一个修订版。
https://stackoverflow.com/questions/43763896
复制相似问题