受保护远程分支Git push被拒与无拒绝的场景判定
受保护分支直接
push的两类场景判定规则 针对配置了「变更合入前必须提交Pull Request」保护规则的远程分支,团队成员执行直接push操作时,两类结果的判定条件如下:
场景1:收到push被rejected(拒绝)提示
判定条件:
- 执行
push命令时,指定的推送目标分支就是配置了强制PR规则的受保护分支本身 - 常见操作示例:本地切到受保护的
main分支完成修改后,直接运行git push origin main尝试推送
这种情况下Git会直接返回错误提示,明确告知远程分支受保护、当前账号无直接推送权限,操作被服务端拒绝,本地提交不会同步到远程任何分支。
场景2:执行push无拒绝提示
判定条件:
- 执行
push命令时,推送的目标分支不是受保护分支本身,而是远程仓库下你拥有直接推送权限的普通非保护分支 - 常见操作示例:本地基于
main分支切出开发分支feature/login-opt,完成修改后运行git push origin feature/login-opt
这种情况下推送操作会正常完成,不会抛出拒绝错误,打开GitHub对应仓库页面时,能看到Compare & pull request按钮。
重要提示:该场景下
push未被拒绝,仅代表你的本地提交已经成功上传到远程的普通开发分支,不代表对应的受保护分支已经同步了你的本地变更,必须通过按钮发起Pull Request、走完评审合入流程后,你的代码才会真正合入受保护分支。
内容的提问来源于stack exchange,提问作者H D
相关产品推荐
相关产品推荐

