非协作者提交至我的GitHub仓库,如何阻止该问题再次发生?
如何阻止非协作者直接推送代码至你的GitHub仓库
1. 启用分支保护规则(核心解决方法)
非协作者能直接推送到你的仓库,大概率是因为目标分支(比如main)没有开启保护规则。按以下步骤设置:
- 打开GitHub仓库页面,进入「Settings」→「Branches」→「Branch protection rules」
- 点击「Add rule」,填入要保护的分支名(如
main) - 勾选关键限制选项:
- Require a pull request before merging:强制所有修改必须通过Pull Request(PR)合并,禁止直接推送
- Require approvals:设置至少1个审核通过才能合并(可根据需求调整数量)
- Restrict who can push to matching branches:仅允许仓库协作者或指定团队推送该分支
- 保存规则后,非协作者无法直接向受保护分支推送代码,只能通过PR提交修改请求
2. 核查仓库权限配置
确认没有误授予无关人员推送权限:
- 进入仓库「Settings」→「Access」→「Collaborators and teams」
- 检查列表,确保只有你信任的协作者在列,且权限符合预期(比如「Write」权限仅给需要推送的协作者)
- 若仓库是公开仓库,默认非协作者仅拥有「Read」权限,无需额外调整;私有仓库则更不会开放推送权限给外部人员
3. 排查第三方应用与账号安全
- 检查是否有未授权的GitHub Apps获得了仓库推送权限:进入仓库「Settings」→「Integrations」→「GitHub Apps」,移除可疑或未使用的应用
- 为你的GitHub账号开启双因素认证(2FA),防止账号被盗用导致的非法推送:进入个人账号「Settings」→「Password and authentication」→「Two-factor authentication」完成设置
4. 确认本地仓库远程关联
虽然你已检查用户信息,仍可确认本地仓库的远程地址是否正确:
- 执行命令:
git remote -v - 确保
origin指向的是你自己的仓库地址,而非他人的fork仓库
内容的提问来源于stack exchange,提问作者Francesco Costa
相关产品推荐
相关产品推荐

