所有推送到develop
分支的提交都表明它们已被验证。
为了合并从develop
到master
的所有内容,我决定单击按钮Rebase and merge
。(我不想为master创建另一个新的提交。(
令人惊讶的是,在合并成功后,所有经过验证的签名都从主签名中消失了。
- 我在这里缺少什么
- 我应该如何保存已验证的签名
重定基础时,更改将在master上重播。这使它们成为";重新定基";新的父提交将更改提交id(部分基于父提交id(。
重新调整可能还需要在重新执行提交时合并更改。即使合并是自动发生的,它也可能更改文件的内容。文件内容是构成commit-id的另一个元素。
验证是通过内容和提交元数据的加密签名来完成的。因此,重新定基将打破这一标志。
为了不破坏签名,您需要使用快进合并(不创建新的合并提交(。要实现这一点,您需要在本地重新设置更改的基础并对其进行签名。
或者,你可以压缩rebase,将你所有的小提交汇总到一个新的提交中,GitHub将代表你签署。
如果验证对您来说很重要,那么重新建立基础通常是个坏主意,快速合并和合并提交将更好地反映实际发生的事情以及谁编写了这些更改。
官方文件:
- https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#signature-重新基准和合并的验证
- https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github#rebasing-并合并您的提交