Git分支管理

发布于:2025-04-07 ⋅ 阅读:(62) ⋅ 点赞:(0)
一、为什么分支管理是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. 冲突解决黄金四步法
  1. 定位冲突文件(git status查看)

  2. 编辑文件解决冲突(搜索<<<<<<<标记)

  3. 标记冲突已解决

    git add tmpFile
  4. 完成合并提交

    git commit -m "fix: 解决支付接口合并冲突"

三、实战全流程
  1. 从主分支创建功能分支

    git switch -c feature-new
  2. 开发新功能并提交

    git add .
    git commit -m "实现xxx功能"
  3. 同步主分支更新

    git fetch origin  # 获取远程最新代码
    git rebase origin/main  # 变基保持提交线性
  4. 合并到主分支

    git switch main
    git merge feature-new --no-ff  # 保留合并记录
  5. 清理分支

    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通过


五、避坑指南:这些操作可能导致代码丢失!
  1. 强制删除未合并分支

    git branch -D experimental  # 慎用!未合并代码直接消失

    替代方案:合并前创建备份分支

  2. 错误使用reset --hard

    git reset --hard HEAD^  # 可能丢失工作区修改

    补救措施:使用git reflog找回提交

  3. 忽略冲突标记直接提交

    git commit -m "草率提交"  # 会导致残留冲突代码

    正确做法:完整解决所有<<<<<<<标记


网站公告

今日签到

点亮在社区的每一天
去签到