摘要:通过A和B的故事,轻松搞懂Git团队协作开发 —— 分支、合并、冲突解决一网打尽。

引言:故事的开始

想象这样一个场景:A和B是两位程序员,他们要合作开发一个网站。A负责做首页,B负责做用户登录功能。如果两个人同时修改同一份代码,岂不是要乱套?

这时 Git 就派上用场了!它就像一个超级管家,帮你管理代码的版本,让多人协作井然有序。

一、故事背景:项目启动

公司接了一个网站项目,技术主管创建了一个 Git 仓库,作为团队共享的代码中心。

# 主管初始化远程仓库后,A和B分别克隆到本地
git clone https://github.com/company/website.git
cd website

这个仓库就像一个公共储物柜,所有人的代码都存在这里,每个人都可以拿一份到自己家里(本地)修改。

二、分支管理:各自开干

为了避免互相干扰,A和B各自创建自己的分支(branch)。分支就像是从主干上分出来的小路,每个人走自己的路,互不影响。

# A 创建自己的分支
git checkout -b feature/homepage

# B 创建自己的分支
git checkout -b feature/login

形象比喻:分支就像是平行的时空,A在自己的时空中做首页,B在自己的时空中做登录,两人互不干扰。

三、日常开发:提交与同步

A 的工作流程

A 在自己的分支上写代码,写完一部分就提交(commit)一次。提交就像是给代码拍个快照,记录这一刻的状态。

# A 写完首页HTML
git add index.html           # 把修改放到暂存区(购物车)
git commit -m "完成首页HTML结构"  # 提交到本地仓库(结账)
git push origin feature/homepage  # 推送到远程仓库(发货)

购物比喻

  • git add:把商品放进购物车
  • git commit:在收银台结账
  • git push:把商品寄回家(远程仓库)

B 的工作流程

B 也在自己的分支上忙碌着:

# B 写完登录页面
git add login.html
git commit -m "完成登录页面"
git push origin feature/login

四、合并代码:殊途同归

当 A 和 B 都完成各自的功能后,需要把代码合并到主分支(main/master)上。这就像两条小溪汇入同一条大河。

第一步:切换到主分支

git checkout main
git pull origin main  # 先拉取最新的主分支代码

第二步:合并 A 的分支

git merge feature/homepage
git push origin main

第三步:合并 B 的分支

git merge feature/login
git push origin main

注意:合并前一定要 git pull,确保本地是最新的,避免冲突。

五、冲突解决:意见不合时怎么办?

假设 A 和 B 都修改了同一个文件(比如 index.html 的标题),合并时就会产生冲突(conflict)。

git merge feature/login
# 自动合并失败,出现冲突
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html

打开 index.html,你会看到:

<<<<<<< HEAD
<title>A的网站</title>
=======
<title>B的登录系统</title>
>>>>>>> feature/login

解决冲突:就像两个人吵架,需要有人来调解。你作为调解员,决定保留哪个或者合并:

<title>A的网站 - B的登录系统</title>

然后:

git add index.html        # 标记冲突已解决
git commit -m "解决标题冲突"
git push origin main

六、常用命令速查表

命令 作用 形象比喻
git clone 克隆远程仓库 把储物柜搬回家
git checkout -b 分支名 创建并切换分支 走自己的小路
git add 添加到暂存区 商品放入购物车
git commit -m 提交到本地仓库 收银台结账
git push 推送到远程仓库 把商品寄回家
git pull 拉取远程最新代码 收最新的快递
git merge 合并分支 两条溪流汇合
git status 查看当前状态 看购物车里有什么
git log 查看提交历史 看购物小票记录

七、完整协作流程图

    远程仓库 (origin)
         ↕ push/pull
    ┌────┴────┐
    │  main   │ ← 主分支(生产环境)
    └────┬────┘
         │ merge
    ┌────┴─────────┐
    │              │
┌───┴────┐    ┌────┴───┐
│ A分支   │    │ B分支  │
│首页功能 │    │登录功能│
└────────┘    └────────┘

八、团队协作的最佳实践

1. 频繁提交,小步快跑

不要一次性写完所有代码才提交,每完成一个小功能就提交一次。

2. 提交信息要清晰

  • git commit -m "修改了"
  • git commit -m "完成用户登录表单验证"

3. 合并前先拉取

git pull origin main  # 养成好习惯

4. 及时删除已合并的分支

git branch -d feature/homepage  # 删除本地分支
git push origin --delete feature/homepage  # 删除远程分支

九、总结

通过 A 和 B 的故事,我们学会了 Git 团队协作的核心流程:

  1. 克隆仓库 → 各自拿一份代码
  2. 创建分支 → 各走各的路
  3. 开发提交 → 记录每一步
  4. 合并代码 → 殊途同归
  5. 解决冲突 → 化解分歧

核心思想:Git 让多人协作变得井然有序,就像一个高效的团队管家。掌握了分支管理,你就能轻松应对任何团队协作场景!

小贴士:协作开发中,沟通比技术更重要。A和B在合并前先商量一下,能避免很多冲突哦!