news 2026/3/16 5:54:00

12 Git 多人协作(完整版工作流)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12 Git 多人协作(完整版工作流)

适用场景:3-20 人小型团队,使用 GitHub / Gitee / GitLab 托管代码
示例命令均以 GitHub 为例,GitLab / Gitee 完全通用,只需换远程地址


12.1 协作前准备:一次配置,终身受益

配置项命令示例说明
本地身份(仓库级)git config --local user.name "林冲"
git config --local user.email "linchong@team.io"
多人共用电脑时必设,区分作者
默认分支名git config --global init.defaultBranch main新仓库默认main,跟上 GitHub
换行符自动转换git config --global core.autocrlf trueWindows 推荐
编辑器git config --global core.editor "code --wait"冲突解决时自动弹 VS Code

12.2 单仓库协作:Forking / 共享仓库模式

① 共享仓库模式(团队内部最常用)

  1. 管理员创建空仓库,不要初始化 README

    https://github.com/team/project.git
  2. 成员一次性克

    git clone git@github.com:team/project.git cd project git config --local user.name "林冲" git config --local user.email "linchong@team.io"
  3. 成员日常三板

    git pull --rebase origin main # 开始工作前 # ...coding... git add . git commit -m "fix: 修复登录超时" git push origin main

    --rebase让历史成直线,回滚/查 log 更清爽。


② Fork + PR 模式(跨团队 / 开源项目)

  1. 成员Fork 官方仓库 → 得到github.com/自己/project

  2. 本地关联两远

    git clone git@github.com:自己/project.git cd project git remote add upstream https://github.com/官方/project.git
  3. 功能开

    git checkout -b feature/pay # ...coding... git push -u origin feature/pay
  4. 浏览器创建 Pull Request(PR) → 官方评审 → 合并

  5. 同步官方最新代

    git fetch upstream git checkout main git merge upstream/main git push origin main

12.3 分支策略:Git-Flow 简化版

分支命名用途保护规则
mainmain随时可上线GitHubProtect禁止强推
developdevelop日常集成同 main
featurefeature/xxx新功能任意推送,PR 合并
hotfixhotfix/xxx线上紧急修复PR 合并后打 Tag

小团队可把main当 develop 用,再建release分支即可。


12.4 冲突解决:从上手到上瘾

场景:林冲 & 鲁智深 同时改同一行

  1. 林冲先 pus

    echo "林冲改" >> B.txt git add B.txt && git commit -m "林冲提交" git push
  2. 鲁智深后 push → 被

    echo "鲁智深改" >> B.txt git add B.txt && git commit -m "鲁智深提交" git push # 被拒
  3. 鲁智深拉取最新代码

    git pull --rebase origin main

    此时文件出现冲突标记:

    <<<<<<< HEAD 林冲改 ======= 鲁智深改 >>>>>>> 鲁智深提交
  4. 手工改好(保留想要的内容)→ 保存

  5. 继续 rebase

    git add B.txt git rebase --continue git push
  6. 完事!历史仍是一条直线。


12.5 远程分支生命周期

# 1. 本地新建并推到远程 git checkout -b feature/cart git push -u origin feature/cart # 2. 队友同步该分支 git fetch git checkout -b feature/cart origin/feature/cart # 3. 功能完成,合并到 main 后删除远程分支 git checkout main git merge feature/cart git push origin --delete feature/cart # 远程删 git branch -d feature/cart # 本地删

12.6 大型二进制文件?用 LFS

# 一次性安装 git lfs install # 追踪大文件 git lfs track "*.zip" git add .gitattributes git add demo.zip git commit -m "添加 200M 压缩包" git push

把大文件存到 LFS 服务器,仓库里只留指针,clone 飞快。


12.7 常见协作踩坑速查

现象原因快速修复
! [rejected] main -> main (fetch first)远端有更新git pull --rebase再 push
refusing to merge unrelated histories两仓库无共同祖先git pull --allow-unrelated-histories
error: You have not concluded your merge (MERGE_HEAD exists)上次 merge 没完成git merge --abort重来
误推大文件历史已污染git reflog+git reset --hard <提交>重写历史

12.8 一键备忘清单(建议收藏)

######## 每日开工 ######## git fetch -p # 看远端有没有新分支/被删分支 git checkout main git pull --rebase origin main git checkout -b feature/xxx # 新建功能分支 ######## 提交阶段 ######## git add . git commit -m "type: 简短描述" git push -u origin feature/xxx ######## 合并阶段 ######## # GitHub 网页创建 PR → Code Review → Squash Merge # 本地清理 git checkout main git branch -d feature/xxx git remote prune origin # 清理远端已删分支的本地引用

12.9 小结

  1. 小团队→ 共享仓库 + 保护main分支 + PR 合并

  2. 跨团队/开源→ Fork + PR 模式

  3. 冲突不可怕,pull --rebase+ 手工解决 +push三步搞定

  4. 分支用完即删,保持仓库轻量

  5. 大文件交给 LFS,别让仓库臃肿

把这份流程贴在团队 Wiki,新成员 5 分钟即可上手协作。祝 Push & PR 愉快!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/5 11:08:29

有关C语言中自加和自减与计算机底层硬件的关糸

C语言中的i和i--,i --i两种形式都指向了计算机硬件底层的计数器&#xff0c;当然减法还多了一个步骤就是取反和加补码&#xff0c;自加的两种方式本质是先做自加还是先做运算的问题

作者头像 李华
网站建设 2026/3/9 9:20:51

Django 学生成绩管理系统

项目概况 这是一个基于Django框架开发的学生成绩管理系统,旨在提供简单高效的成绩管理解决方案,适用于学校、培训机构等教育场景。 技术栈 - 后端 : Django 5.0.6 + SQLite - 前端 : Bootstrap 5 + Django Template Language - 核心依赖 : django-widget-tweaks 核心功能模…

作者头像 李华
网站建设 2026/3/15 15:46:15

13、UNIX用户管理全解析

UNIX用户管理全解析 1. 用户管理概述 用户管理几乎涉及系统管理各个领域的技能,工作核心围绕机器用户展开。理想的用户管理是不被用户察觉的,因为用户间接为系统运行付费,所以与系统的深入交互才得以实现。用户管理主要涉及用户ID的管理操作,包括添加、删除、修改、移动、…

作者头像 李华
网站建设 2026/3/10 21:51:13

动态规划01背包问题

动态规划:01背包问题 情景 现在有一个容量有限的背包(比如能装10公斤的东西)&#xff0c;现在有价值不同&#xff0c;重量也不同的几件物品&#xff0c;我们要怎样装才能让这个背包尽可能的装的价值最高 这就是为什么这个问题叫01背包问题&#xff0c;每个物品只有两种状态,放入…

作者头像 李华
网站建设 2026/3/15 18:42:57

WinForm DataGridView:单元格类型与高频绘制案例

目录 一、前置准备 二、DataGridView 常用单元格类型&#xff08;基础必掌握&#xff09; 1. 文本框单元格&#xff08;DataGridViewTextBoxColumn&#xff09; 2. 复选框单元格&#xff08;DataGridViewCheckBoxColumn&#xff09; 3. 下拉框单元格&#xff08;DataGridV…

作者头像 李华
网站建设 2026/3/14 13:09:42

java计算机毕业设计社区志愿者服务系统 智慧社区公益志愿协同平台 基层志愿者数字化运营管理系统

计算机毕业设计社区志愿者服务系统38q2o9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。当“志愿红”成为社区里最温暖的底色&#xff0c;传统的人工登记、微信群接龙、纸质工时…

作者头像 李华