先看报错截图:
我在20220705分支上提交了代码,当push到远程的时候发生了上图所示的报错:
! [remote rejected] 20220705 -> 20220705 (pre-receive hook declined)
error: failed to push some refs to 'xxx.git'
其实报错原因就在图中: You are not allowed to push code to protected branches on this project。
当前分支的分支权限是protected,即受保护的分支,是不允许我们将代码推送到该分支的。
解决方案有两种:
1、新建分支push代码,然后merge
// 新建分支步骤
// 1、切换分支--从20220705分支新拉一个分支,所以这里我切换到了该分支
git checkout 20220705
// 2、新建分支并且切换到该分支
git checkout -b newBranch
// 3、推送到远程仓库
git push origin newBranch
// 4、关联分支
git branch --set-upstream-to=origin/newBranch newBranch
// 或者
git push --set-upstream origin newBranch
// ====================分割线=================
//合并代码(假设newBranch分支上已经push了需要提交的代码)
// 1、切换分支
git checkout 20220705
// 2、合并代码
git merge origin/newBranch
2、修改分支权限(不推荐)
一般来说,如果允许直接在该分支上push代码,应该也不会设置分支权限是protected,还是老老实实新建自己的分支吧,不要像我一样偷懒呀!