一、为什么分支管理是Git的灵魂?
想象你正在开发电商系统,突然接到紧急需求要修复支付BUG,同时产品经理又提出了新的商品推荐功能需求。如果直接在主干代码上修改,稍有不慎就会引发线上故障——这就是分支存在的意义!
通过Git分支管理,你可以:
🚀 并行开发:多人协作互不干扰
🔒 代码隔离:实验性功能不影响主分支
⏱️ 快速回滚:问题代码一键切换版本
� 冲突可视化:合并代码自动标记冲突点
二、Git分支核心操作全解析
1. 分支的创建与切换
创建+切换分支(一步到位)
git checkout -b feature-tmp # 创建并切换到feature-tmp分支
安全切换分支(推荐Git 2.23+)
git switch -c feature-tmp # 更直观的创建切换命令
2. 分支的查看与对比
查看分支图谱
git log --oneline --graph --all # 图形化显示分支演进
比较分支差异
git diff main feature-search # 对比主分支与搜索功能分支
3. 分支的合并策略
合并方式 | 适用场景 | 命令示例 |
---|---|---|
快速合并 | 线性历史无冲突 | git merge feature-xxx |
三方合并 | 需要解决冲突 | 手动处理冲突后提交 |
变基合并 | 整理提交历史 | git rebase main |
4. 冲突解决黄金四步法
定位冲突文件(
git status
查看)编辑文件解决冲突(搜索
<<<<<<<
标记)标记冲突已解决
git add tmpFile
完成合并提交
git commit -m "fix: 解决支付接口合并冲突"
三、实战全流程
从主分支创建功能分支
git switch -c feature-new
开发新功能并提交
git add . git commit -m "实现xxx功能"
同步主分支更新
git fetch origin # 获取远程最新代码 git rebase origin/main # 变基保持提交线性
合并到主分支
git switch main git merge feature-new --no-ff # 保留合并记录
清理分支
git branch -d feature-new # 删除已合并分支
四、高级技巧:释放分支管理的真正威力
1. 分支命名规范
feature/
:新功能开发hotfix/
:线上紧急修复release/
:预发布分支bugfix/
:普通问题修复
2. Git Flow工作流
# 初始化Git Flow git flow init # 开始新功能开发 git flow feature start payment-optimize # 完成功能开发 git flow feature finish payment-optimize
3. 分支保护策略
设置
main
分支为保护分支合并需通过Pull Request
强制代码审查+CI通过
五、避坑指南:这些操作可能导致代码丢失!
强制删除未合并分支
git branch -D experimental # 慎用!未合并代码直接消失
替代方案:合并前创建备份分支
错误使用reset --hard
git reset --hard HEAD^ # 可能丢失工作区修改
补救措施:使用
git reflog
找回提交忽略冲突标记直接提交
git commit -m "草率提交" # 会导致残留冲突代码
正确做法:完整解决所有<<<<<<<标记