git - 带有签名的 git 中的可信开发路径

标签 git version-control digital-signature gnupg

我想为软件开发建立一个可信的路径。这个 意味着对代码的每次更改都必须由作者签名 和一位审稿人,在被接受之前。这些签名为 更改必须在发布时可验证,或者必须有一些 确保存储库不能被其他方式 被篡改,或添加了其他更改。

我希望为此使用的版本控制系统是 git,但也接受其他选项。签名可以通过 GnuPG 或 SSL 证书。

我想的工作流程大概是:

  1. 当前验证的主干是分支的
  2. 更改由一名或多名开发人员在分支机构中开发
  3. 一个或多个开发人员签署分支所做的更改
  4. 审阅者审阅并测试更改
  5. 审阅者签署分支所做的更改
  6. 分支“merge ”到当前验证的主干中

merge 不一定要万无一失比如未经审查 更改需要不可 merge 到主干 - 就在之前 发布,需要有一种方法来检查是否有任何 主干中未经审查(未签名)的更改。通常,不需要防止篡改,只需检测即可。

我想要一份关于如何设置它以及如何完成每项操作的简短指南。一旦我得到一些指示,我就可以自己弄清楚具体细节。

此外,我已经从技术上了解“git tag -s”,但我不确定如何将它应用于这个特定问题。

最佳答案

在您标记之前,更改不会被签署。在此之前的任何内容都可以由作者或其他带外机制验证,但不能在 git 中验证。

git 可以验证更改的继承是否正确,但只有签名标签才能验证更改本身是否正确。

对于您的工作流程,您可能会发现自己标记了很多。

关于git - 带有签名的 git 中的可信开发路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423520/

相关文章:

git - 如何使用 vim 作为寻呼机设置彩色 git diff

GitIgnore - 忽略 bin/但包括 bin/*.refresh

mongodb - 需要Liquibase替代mongodb和/或cassandra数据库

java - 数字签名验证,所选证书有错误,无法使用

python - Pycrypto 字符串太长,无法签名/验证

java - 签名后获取签名数据

android - 特 pull 维斯 VS CircleCi VS Jenkins

java - 我应该将 git 存储库存储在 Home 还是 Eclipse Workspace 中?

xcode - 你将如何避免 "Xcode, Subversion Error: 155007 (Path is not a working copy directory)"?

apache-flex - 单独使用 actionScript 在 flex 中获取和设置应​​用程序的版本号