📖 知识点回顾
git pull:开工先同步远程最新代码git add/git commit:本地提交git push:推送本地提交到远程git fetch:只下载不合并冲突解决:删标记 → 重新提交(Day17)
分支工作流:主分支稳定 + 功能分支开发
💡 协作总流程(防冲突心法)先 pull 同步 → 开发提交 → 提交前再 pull → push核心:push 之前先 pull,把别人的最新改动先合并到自己这边,再一起推上去,最不容易冲突。
⚔️ 剧情 Kata 实战任务
任务需求:
模拟 "阿琳在远程提交":在模拟远程(备份仓库)提交 "支付模块"
你(主仓库)也在本地改代码、提交
按规范:push 前先
git pull,同步阿琳的更新再
git push推送(若冲突就手动解决)用 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 ...
💡 完成动作示意:
阿琳在远程提交了 "支付模块",你在本地提交了 "优惠"
你按规范
git pull先同步 → 阿琳的 "支付模块" 合进本地(Fast-forward)
git log看到阿琳和你的提交都在、ls看到支付模块.py因为push 前先 pull,把阿琳的改动先合并了,再 push 就不冲突 —— 协作规范成功!
🧠 思考题
防冲突的心法是 "push 前先 pull",这步为什么能大大减少冲突?(提示:先把别人的合并进本地,再推上去)
如果 pull 时发现本地和远程改了同一处代码,会发生什么?该怎么处理?(提示:Day17 手动解决冲突)
行者孙Python