📖 知识点
1. 解决冲突的完整套路
① 打开冲突文件 → ② 找到 <<<<<<< ======= >>>>>>> 标记
→ ③ 决定保留哪个版本(或两者合并)
→ ④ 删掉所有冲突标记,只留正确代码
→ ⑤ git add → ⑥ git commit → 合并完成
2. 打开冲突文件
vim 订单模块.py
看到冲突标记:
def 价格():
<<<<<<< HEAD
return 15元
=======
return 20元
>>>>>>> 老李改动
3. 裁决:保留正确版本
假设老板说 "定价该听老李的 20 元",你手动编辑,删掉标记,只留:
def 价格():
return 20元
关键是删掉
<<<<<<<、=======、>>>>>>>三行标记,只留下最终正确的代码。
4. 重新提交完成合并
git add 订单模块.py # 暂存裁决后的文件
git commit -m "合并: 解决订单价格冲突" # 提交,合并完成
运行示例:
[master 8a9b0c1] 合并: 解决订单价格冲突
提交后合并就正式完成了,冲突解除。
5. 确认合并完成
git log --oneline
能看到 "合并" 提交,说明冲突已解决、两分支改动成功合二为一。
⚠️ 易错提醒
冲突标记
<<<<<<<、=======、>>>>>>>必须删干净,否则代码有语法错误只保留一个正确版本,或手动合并两者,别把标记也留下
冲突解决后要 git add + git commit,合并才算真正完成
⚔️ 剧情 Kata 实战任务
任务需求:
承接 Day16 的冲突现场(订单模块.py 里有冲突标记)
用 vim 打开,手动裁决:保留正确的价格
删掉所有冲突标记,只留正确代码
用
git add+git commit重新提交,完成合并用
cat和git log验证冲突已化解
参考代码(在终端依次敲)
# 0. 进仓库(承接Day16的冲突现场)
cd ~/外卖App
git status # 看到 "both modified" 冲突状态
# 1. 打开冲突文件,手动裁决
vim 订单模块.py
# 把:
# <<<<<<< HEAD
# return 15元
# =======
# return 20元
# >>>>>>> 老李改动
# 改成(假设保留老李的20元):
# def 价格():
# return 20元
# (:wq 保存退出)
# 2. 确认冲突标记已删干净
cat 订单模块.py
# 3. 暂存并提交,完成合并
git add 订单模块.py
git commit -m "合并: 解决订单价格冲突"
# 4. 验证合并完成
git log --oneline
运行示例:
user@linux:~/外卖App$ cat 订单模块.py
def 价格():
return 20元 # 冲突标记已删,只留正确版本
user@linux:~/外卖App$ git add 订单模块.py
user@linux:~/外卖App$ git commit -m "合并: 解决订单价格冲突"
[master 8a9b0c1] 合并: 解决订单价格冲突
user@linux:~/外卖App$ git log --oneline
8a9b0c1 合并: 解决订单价格冲突
a1b2c3d 小张改: 价格15元
...
💡 完成动作示意:
git status看到 "both modified"(双方都改了,冲突中)vim 打开,删掉
<<<<<<<、=======、>>>>>>>,保留 "20 元"
git add+git commit -m "合并: 解决订单价格冲突"
git log看到合并提交 —— 冲突成功化解,两分支改动合二为一!
🧠 思考题
解决冲突的步骤是什么?为什么冲突标记必须删干净?
如果老板说 "价格取中间值 18 元",你该怎么做?(提示:手动把内容改成 18 元,删标记)