问题
我在 GitHub 上有一个存储库,并在分支上启用了以下分支保护规则main
:
- 需要签名的提交:推送到匹配分支的提交必须具有经过验证的签名。
- 合并前需要拉取请求:要求所有提交都对非目标分支进行,并通过拉取请求提交,然后才能合并。
- 阻止强制推送:防止具有推送访问权限的用户强制推送到分支。
我的问题是,我可以main
通过拉取请求中的“变基和合并”选项将分支合并到而不违反规则,因为我实际上不清楚“变基和合并”在目标分支上的作用。
复制
我已向新分支添加了一些提交并创建了拉取请求。我已经启用了自动合并(变基)。但即使所有必需的状态检查都已通过,合并也会卡住。它报告 “基础分支需要签名提交”。
这是我的拉取请求:更新:因果推理
不。如果您尝试做的事情是可能的,则 main 上可到达的所有提交都将是未签名的。因此,实际上,您想要做的就是完全规避签名要求。
尽管名称如此,变基和合并并不是合并。相反,它直接在 main 上创建一系列全新的提交。这些新提交与构成 PR 分支的提交不同,尽管它们最终基于它们。因此,即使您的 PR 分支提交已签名,但根据定义,这些新提交并未签名。因此,您将向 main 引入一组未签名且没有可追溯的起源历史的提交。这是被禁止的。