协作篇-Day24|剧情 Kata:阿琳在远程提交了代码,大家如何同步协作不冲突

12 次阅读 2026-10-30 15:14

📖 知识点回顾

  1. git pull:开工先同步远程最新代码

  2. git add / git commit:本地提交

  3. git push:推送本地提交到远程

  4. git fetch:只下载不合并

  5. 冲突解决:删标记 → 重新提交(Day17)

  6. 分支工作流:主分支稳定 + 功能分支开发

💡 协作总流程(防冲突心法)先 pull 同步 → 开发提交 → 提交前再 pull → push核心:push 之前先 pull,把别人的最新改动先合并到自己这边,再一起推上去,最不容易冲突。

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 模拟 "阿琳在远程提交":在模拟远程(备份仓库)提交 "支付模块"

  2. 你(主仓库)也在本地改代码、提交

  3. 按规范:push 前先 git pull,同步阿琳的更新

  4. 再 git push 推送(若冲突就手动解决)

  5. 用 git log 验证:双方代码都合在一起,协作无冲突

参考代码(在终端依次敲)

# 0. 模拟阿琳在远程提交"支付模块"
cd ~/外卖App备份
echo "def 支付(): return '支付成功'" > 支付模块.py
git add 支付模块.py
git commit -m "feat: 新增支付模块(阿琳)"

# 1. 你在主仓库也改了代码(本地提交)
cd ~/外卖App
echo "def 优惠(): return '满减'" >> 外卖App.py
git add 外卖App.py
git commit -m "feat: 新增优惠(小孙)"

# 2. 按规范:push前先pull,同步阿琳的更新
git pull ~/外卖App备份 master

# 3. 再push(此时本地已含双方代码)
#    (真实场景 push 到远程;此处演示git log验证)

# 4. 验证:双方代码都在本地历史
git log --oneline
ls

 

运行示例:

user@linux:~/外卖App$ git pull ~/外卖App备份 master
From /home/user/外卖App备份
 * branch            master -> FETCH_HEAD
Updating 5f6a7b8..9d0e1f2
Fast-forward
 支付模块.py | 1 +
 1 file changed, 1 insertion(+)

user@linux:~/外卖App$ git log --oneline
9d0e1f2 feat: 新增支付模块(阿琳)
8c7d6e5 feat: 新增优惠(小孙)
...
user@linux:~/外卖App$ ls
支付模块.py 外卖App.py ...

 

💡 完成动作示意:

  1. 阿琳在远程提交了 "支付模块",你在本地提交了 "优惠"

  2. 你按规范 git pull 先同步 → 阿琳的 "支付模块" 合进本地(Fast-forward)

  3. git log 看到阿琳和你的提交都在、ls 看到支付模块.py

  4. 因为push 前先 pull,把阿琳的改动先合并了,再 push 就不冲突 —— 协作规范成功!

🧠 思考题

  1. 防冲突的心法是 "push 前先 pull",这步为什么能大大减少冲突?(提示:先把别人的合并进本地,再推上去)

  2. 如果 pull 时发现本地和远程改了同一处代码,会发生什么?该怎么处理?(提示:Day17 手动解决冲突)