我给你分成两个部分讲:Linux 内核这种大型开源项目的提交机制,和你在 gitee/GitHub 管理自己开源项目协作开发的权限与流程。
1️⃣ Linux 内核提交流程 — 不能直接 push 到 master
- Linux 内核的 master 分支(Linus Torvalds 的主线)是 只读 的,任何人(除了 Linus)都不能直接
git push。 -
提交内核改动的流程是:
- 你 fork/clone 内核源码
- 在本地创建分支,修改并
git commit - 用
git format-patch生成补丁 - 通过 邮件列表 (LKML) 发送补丁,由对应子系统维护者审阅
- 如果通过,维护者会合并到自己的分支,再合并到主线
(Linus 最终
pull合并)
- 结论:进入 master 必须经过审核和合并流程,不是给权限就能直接推。
2️⃣ Gitee/GitHub 项目协作 — master 分支权限
你说的 别人能 clone 但 push 失败,通常原因是:
- 对方没有你仓库的 写权限
- 或者你的 master 分支设置了 保护分支 (Protected Branch)
解决方法:
- 进入仓库 → 设置(Settings)→ 成员管理(Collaborators)
- 添加对方的账号,授予
write或maintain权限 -
如果开了保护分支,需要:
- 允许合并(merge)
- 或者允许直接推送(通常不建议直接推 master)
3️⃣ 常见协作开发流程(推荐)
假设你是仓库管理员:
① Fork + Pull Request 模式(安全)
- 任何人都可以 fork 你的项目
- 他们在自己的仓库新建分支,提交代码
- 通过 Pull Request(或 Gitee 的 PR)发给你
- 你审核后合并到 master ✅ 优点:安全、可控 ❌ 缺点:多一步审核
② 直接协作模式(信任团队)
- 你给团队成员 写权限
-
协作规则:
- 每个人在 自己的分支 开发(
feature/xxx) - 完成后提 PR → 管理员审核 → 合并到 master
- 每个人在 自己的分支 开发(
-
master 分支设置为受保护:
- 不允许直接推送
- 必须通过 PR 合并
4️⃣ 常用 Git 协作操作命令
拉取远程代码更新
git pull origin master
创建并切换新分支
git checkout -b feature/new-function
提交改动
git add .
git commit -m "添加新功能"
推送分支到远程
git push origin feature/new-function
发起合并请求(在 Gitee/GitHub 网页操作)
管理员合并 PR 到 master
git checkout master
git pull origin master
git merge feature/new-function
git push origin master
💡 小结建议:
- Linux 内核 → 绝对不能直接进 master,要走邮件/维护者流程
- 你自己的项目 → master 要保护,协作用分支 + PR
- 权限管理 → Gitee “成员管理” 里分配写权限,或走 fork+PR 模式
- 团队协作 → 永远不要直接在 master 上开发
如果你愿意,我可以帮你画一张 “远程协作 Git 流程图”,把 Linux 内核、Gitee、团队协作的提交流程一次画清楚,你照着走就不会乱。 这样你以后带团队开发 EEG 项目也能直接套用。
回复 admin 取消回复