关于GitHub两组分支保护设置差异的技术疑问
GitHub分支保护两组设置的差异与等价性确认
结论先行:这两组设置完全不等价,核心差异主要体现在三个方面:
一、触发重新审批的条件不同
- 第一组:只有当PR中新增代码类提交时,旧审批才会被驳回失效;如果是合并基础分支(比如把主分支合并到PR分支)这类非代码变更,之前的审批依然有效,不需要重新走审批流程。
- 第二组:只要PR有新的push操作(不管是不是代码变更,哪怕只是合并基础分支),都必须重新审批,旧审批直接作废。
二、审批主体的限制不同
- 第一组:只要求满足指定数量的拥有写入权限的人员审批即可,没有限制审批者不能是最后push的人——也就是说,如果最后push的人本身有审批权限,他可以自己给自己的PR审批通过。
- 第二组:强制要求审批者不能是最后执行push操作的人,哪怕这个人拥有审批权限,也必须找其他符合要求的人来审批。
三、规则的约束逻辑不同
- 第一组是两个基础规则的组合:先要求PR必须经过审批才能合并,再补充“代码更新后旧审批作废”的细化规则,整体是在基础审批要求上做针对性补充。
- 第二组是一个独立的强约束规则,它会直接覆盖原有审批规则里的主体限制,只要有新的push,就必须由他人审批,不受之前审批规则的影响。
简单概括:第一组是“代码更新就作废旧审批,但自己可以再审”,第二组是“任何新push都必须他人审批”,两者的约束范围和严格程度都有明显区别。
内容的提问来源于stack exchange,提问作者wheeler
相关产品推荐
相关产品推荐

