首页 > 解决方案 > 审阅者可以将他们的签名添加到特定的 git 提交吗?

问题描述

如果我想确保 git 存储库中的每个提交都经过作者和第二(甚至第三)人的审查,是否可以多次签署 git 提交?

(如果不是,我想下一个最好的事情是添加后续的、空的、签名的提交,但这似乎有点混乱)。

标签: gitcommitgnupg

解决方案


提交的哈希 ID 完全取决于提交中的每个字节,包括任何签名(GPG 或其他)。你可以对一个单独的标签进行 GPG 签名——一个带注释的标签对象,通过提交的哈希 ID 引用提交——每个审阅者都可以这样做,但是如果要将审阅者的 GPG 签名添加到提交中,则结果是一个新的以及具有新的不同哈希 ID 的不同提交。

没有新签名的现有、现已过期的提交继续存在于其现有哈希 ID 下。如果您获得所有其他名称- 主要是分支和/或标签名称 - 停止使用该提交的哈希 ID,并且不要使用任何将该提交作为其父提交的提交,旧的提交最终将被垃圾收集。这是可以实现的另一条路径:基本上每个人都会进行一些一次性提交,以便构建具有所有签名的最终最终提交。随着更多签名的提交被添加到存储库中,参与其中的每个人都会丢弃他们丢弃的早期提交(只是不再使用它并让 Git 最终删除它)并且当提交的最终版本存在于其最终哈希 ID 下时,每个人都可以继续添加新的提交。

这是一个相当繁重的过程。考虑其他一些过程可能会更好,例如签署标签或使用git notes,或者您自己建议的“空”(没有区别,但在他们的消息中签名)提交。


推荐阅读