GIT远程协同-提交代码

我给你分成两个部分讲:Linux 内核这种大型开源项目的提交机制,和你在 gitee/GitHub 管理自己开源项目协作开发的权限与流程


1️⃣ Linux 内核提交流程 — 不能直接 push 到 master

  • Linux 内核的 master 分支(Linus Torvalds 的主线)是 只读 的,任何人(除了 Linus)都不能直接 git push
  • 提交内核改动的流程是:

    1. 你 fork/clone 内核源码
    2. 在本地创建分支,修改并 git commit
    3. git format-patch 生成补丁
    4. 通过 邮件列表 (LKML) 发送补丁,由对应子系统维护者审阅
    5. 如果通过,维护者会合并到自己的分支,再合并到主线 (Linus 最终 pull 合并)
  • 结论:进入 master 必须经过审核和合并流程,不是给权限就能直接推。

2️⃣ Gitee/GitHub 项目协作 — master 分支权限

你说的 别人能 clone 但 push 失败,通常原因是:

  • 对方没有你仓库的 写权限
  • 或者你的 master 分支设置了 保护分支 (Protected Branch)

解决方法:

  1. 进入仓库 → 设置(Settings)→ 成员管理(Collaborators)
  2. 添加对方的账号,授予 writemaintain 权限
  3. 如果开了保护分支,需要:

    • 允许合并(merge)
    • 或者允许直接推送(通常不建议直接推 master)

3️⃣ 常见协作开发流程(推荐)

假设你是仓库管理员:

① Fork + Pull Request 模式(安全)

  • 任何人都可以 fork 你的项目
  • 他们在自己的仓库新建分支,提交代码
  • 通过 Pull Request(或 Gitee 的 PR)发给你
  • 你审核后合并到 master ✅ 优点:安全、可控 ❌ 缺点:多一步审核

② 直接协作模式(信任团队)

  1. 你给团队成员 写权限
  2. 协作规则:

    • 每个人在 自己的分支 开发(feature/xxx
    • 完成后提 PR → 管理员审核 → 合并到 master
  3. 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 项目也能直接套用。


评论

《 “GIT远程协同-提交代码” 》 有 4 条评论

  1. 您 百分百 给予建议。多发布! 地中海陽光 欣赏你的照片, 我感受到, 旅行带来灵感。感谢 能量。

  2. 你们的博客 认真地 帮助别人。保持方向!

回复 貝殼廣場 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注