我的存储库属于我创建的组织。我想防止拉取请求期间出现错误。例如,意外地允许从
master
以外的分支合并 development
分支。
我怎样才能做到这一点?
我不知道 Git 中有任何直接机制可以做到这一点。然而,还有其他方法。
这是工程和软件开发中经常发生的“硬流程规则”与“委派和培训”问题。
如果您将
master
设为受保护分支,那么只有那些对受保护分支具有较高访问权限的人才能推送到它,和/或合并拉取请求(理想情况下,没有人会在没有拉取请求进行审查的情况下直接推送,除非修复了合并/提交问题)。确实没有必要确保它们仅来自development
(在我看来),这只是您需要与每个被赋予这些权利的领导/高级开发人员达成一致的过程。
Git 提供了大量工具来恢复极少数情况下出现的错误。当然,您最终可能会做出一两次额外的提交,但这并不是什么灾难性的事情。完全僵化、自上而下的流程比稍微宽松一点、对员工进行最佳实践培训并通过培训和纠正(当确实发生奇怪错误时)使他们成为更好的开发人员的方式损失更多的生产力。
至少这是我的经验。
如果您不熟悉 GitFlow - 请在此处查看,但请注意,具有良好自动化测试覆盖率的理想 CI/CD 方法不需要发布分支,也可能不需要开发。
我的解决方法是创建一个自定义 github 工作流程/操作,仅在推送到分支 Y 时运行。让我们将此操作命名为“special_action”
然后在分支X上设置分支保护,确保分支X只允许在“special_action”检查通过时合并PR。
由于“special_action”仅在推送/合并到 Y 分支时运行,因此此设置可以让您实现您想要的。