'提交ID'之间的区别是什么?和' SHA1哈希'在GIT?

时间:2017-05-03 15:10:14

标签: git

我已经在GIT工作了很长一段时间。

然而,我找不到“提交ID”和“提交ID”之间的区别。和' SHA1 - 哈希值'

提交ID和#39;之间的区别是什么?和' SHA1'?使用示例的任何简单解释都很好

2 个答案:

答案 0 :(得分:4)

提交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

但请注意它们是一样的。

答案 1 :(得分:2)

我已经阅读过之前提供的答案,我认为可以添加一些小东西。一个修订版总是指向到一个sha1(它实际上没有指向,修订版通过其sha1 ID识别但是请耐心等待)但git中的对象&#39 ; s DB可以是:修订版,树,blob等,它们都是由sha1 ID标识的。因此,修订意味着使用sha1 ID(以识别它......但在修订版中使用的其他sha1 ID,如父项,树对象),但sha1 ID并不一定意味着它是修订版。