【问题标题】:What is the difference between Gerrit Change-ID and Commit SHA-1 in the context git commits?Gerrit Change-ID 和 Commit SHA-1 在上下文 git 提交中有什么区别?
【发布时间】:2017-12-14 07:39:05
【问题描述】:

当我们执行 git log 命令时,我们会看到每个提交的一些信息如下 - 提交 SHA-1(提交哈希) 作者姓名和电子邮件 日期 提交标题 提交消息 更改 ID

我想了解 1. Commit SHA-1 和 6. Change-ID 之间的区别。

【问题讨论】:

标签: git github gerrit


【解决方案1】:

提交 SHA-1(提交哈希)是一个标识提交的字符串,其定义方式是,如果提交被重做(修改、变基或挑选)或如果提交历史记录中的任何内容发生更改,则哈希值会有所不同。因此,如果您签出一个哈希,您可以确信您签出了具有相同历史记录的完全相同的提交。更多信息在这里:https://gist.github.com/masak/2415865

Gerrit Change-Id 也是一个哈希字符串,但它不是 git 的一部分。它是稍后添加到提交消息的东西,因此 Gerrit 可以阅读它。这仅由 Gerrit 使用。用途如下。我做了一个新的提交并将其发送给 Gerrit。它具有更改 ID abc。审核后,如果此提交有问题,我必须修复它。我这样做的方式是修改当前提交。修改将更改提交的 SHA-1,但如果我不更改提交消息,则不会更改 Change-Id。由于现在这个新提交共享相同的 Change-id,当我将它发送给 Gerrit 时,Gerrit 会知道这个新提交是更改 abc 的新版本,并将它们组合在一起以方便审查。 更多信息在这里:https://git.eclipse.org/r/Documentation/user-changeid.html

【讨论】:

  • 所以 commit SHA-1 是由 git 系统生成的,而 Change-ID 是由 gerrit 系统生成的。对吗?
  • 没错。更改 ID 也可以通过 gerrit git-hook 自动添加到更改提交消息中。这可以安装在您的机器上。
猜你喜欢
  • 1970-01-01
  • 2011-02-14
  • 2018-03-27
  • 2021-02-26
  • 2012-08-01
  • 2021-11-02
  • 2017-10-01
  • 1970-01-01
相关资源
最近更新 更多