首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GIT中,'Commit ID‘和'SHA1 Hash’有什么区别?

在GIT中,'Commit ID‘和'SHA1 Hash’有什么区别?
EN

Stack Overflow用户
提问于 2017-05-03 15:10:14
回答 2查看 33.8K关注 0票数 19

我在GIT上工作很久了。

但是,我找不到‘提交Id’和'SHA1 -散列值‘之间的区别。

'Commit ID‘和’SHA1 1‘之间有什么区别?任何简单的例子说明都会很好。

EN

回答 2

Stack Overflow用户

发布于 2017-05-03 15:20:15

提交ID是用来标识提交的。有时,您将看到简写版本,它只是实际提交ID的前七个字符与完整的散列。

请考虑以下示例:

代码语言:javascript
复制
[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

代码语言:javascript
复制
git show -s --format=%H

结果

代码语言:javascript
复制
42e2e5af9d49de268cd1fda3587788da4ace418a

简写版

代码语言:javascript
复制
git show -s --format=%h

结果

代码语言:javascript
复制
42e2e5a

但请注意他们是一样的。

票数 21
EN

Stack Overflow用户

发布于 2017-05-03 15:47:55

我读过以前提供的答案,我认为有一点需要补充。一个修订总是指向一个sha1 (它实际上不是指向的,一个修订是由它的sha1 ID标识的,但是支持我),但是git的DB中的对象可以是:修订、树、块等等,它们都是由sha1 ID标识的。因此,修订意味着使用sha1 ID (来标识它.但是在修订版中还有其他的sha1 ID,比如父母、树对象),但是sha1 ID并不一定意味着它是一个修订版。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43763896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档