如何阻止本地向Bitbucket的production分支直接合并与提交
解决Bitbucket Production分支禁止直接合并/提交的方案
1. 补全Bitbucket远程分支权限配置
你之前只设置了合并请求的审批权限,漏掉了最关键的禁止直接推送规则,这才导致低权限用户能绕过限制:
- 进入Bitbucket仓库的「分支限制」页面,找到production分支的规则项
- 勾选「Prevent pushes to this branch」(禁止直接推送至该分支),这个规则会阻止所有用户(包括管理员)直接向production分支推送任何代码——不管是直接提交的修改,还是本地合并后的内容
- 保留原有的「仅允许管理员审批合并请求」规则,确保只有指定人员能完成合并流程
- 同步检查用户权限:给低权限用户设置为「只读」或「仅能推送非保护分支」,彻底切断他们对production分支的操作权限
2. 本地仓库加层防护(可选)
为了避免团队成员误操作,可以在本地仓库设置推送钩子提前拦截:
- 进入本地仓库的
.git/hooks目录,新建pre-push文件,粘贴以下代码:
#!/bin/sh protected_branch="production" current_branch=$(git rev-parse --abbrev-ref HEAD) if [ "$current_branch" = "$protected_branch" ]; then echo "❌ 禁止直接推送production分支,请通过Bitbucket合并请求操作!" exit 1 fi exit 0
- 给文件添加执行权限:
chmod +x .git/hooks/pre-push
以后谁在本地切到production分支尝试推送,会直接被钩子拦截。
3. 明确团队操作规范
- 跟所有团队成员强调:production分支的更新必须走Bitbucket合并请求流程,禁止任何本地合并后直接推送的操作
- 定期查看仓库提交记录,发现违规操作及时提醒纠正
内容的提问来源于stack exchange,提问作者Fer Catalano
相关产品推荐
相关产品推荐

