写在前面
“救命!我同时在改三个功能,代码全乱套了!” —— 这是每个开发者都会遇到的灵魂尖叫时刻。别慌,Git 分支合并就像整理杂乱的衣橱,掌握这些技巧,让你的代码仓库从灾难现场变成宜家样板间!
一、基础合并:把功能分支“塞进”主分支
1. 标准三步合并法
# 1. 切换到主分支(接收改动方)
git checkout main
# 2. 合并特性分支(把feature-branch的改动塞进来)
git merge feature-branch
# 3. 推送到远程
git push origin main
这就像把整理好的衣服(feature-branch)放进主衣柜(main),注意顺序不能反!
🛠️ 避坑指南:
- 合并前先
git pull
更新主分支,避免“你的衣柜和室友不同步” - 合并时关掉IDE,避免文件锁定冲突(血泪教训!)
二、高级合并:用Rebase打造线性历史
1. Rebase变基(适合个人分支)
git checkout feature-branch
git rebase main # 把当前分支的修改“嫁接”到main最新节点
这就像把衣服重新按颜色排序,历史记录会变成一条直线,强迫症患者福音!
💡 黄金法则:
- 只对尚未推送的分支用rebase
- 合并后删除特性分支(
git branch -d feature-branch
)
2. 交互式Rebase(修改历史)
git rebase -i HEAD~3 # 修改最近3次提交
会出现神奇的命令选项:
pick 保留提交
reword 修改提交信息
squash 合并到前一个提交
这就像用时光机回去重新整理衣柜!
三、冲突解决:当Git也懵逼时
1. 冲突现场还原
当看到这个恐怖提示时:
CONFLICT (content): Merge conflict in src/app.js
别慌!冲突文件里会有明显标记:
<<<<<<< HEAD
主分支的代码
=======
特性分支的代码
>>>>>>> feature-branch
2. 三招化解冲突
- 手动编辑:直接删掉标记,保留正确代码
- VS Code神器:用内置的冲突解决工具(点那些小按钮)
- 终极核弹(慎用):
git checkout --ours file.js # 全用主分支版本 git checkout --theirs file.js # 全用特性分支版本
���