1. 分支定义与命名规则

分支类型 命名规则 环境 保护规则
main/master main/master 生产 🚫 禁止直接推送
test test 测试 ✅ 需Code Review后合并
功能分支 feat/* 开发 🌱 例: feat/user-auth
修复分支 fix/* 生产 🔥 例: fix/login-error

2. 新功能开发全流程(feat)

2.1 创建功能分支(IDEA详细步骤)

  1. 更新test分支

    • 左上角分支列表 → 点击 test → 选择 Checkout
    • 右键项目 → GitRepositoryPull(或 Ctrl+T
  2. 新建功能分支

    • 左上角分支列表 → New Branch
    • 输入分支名:feat/功能简写(如 feat/order-export
    • 确认基于 test 分支创建 → 点击 Create
  3. 首次推送分支

    • 完成首次提交后 → GitPush
    • 勾选 Push current branch to origin → 点击 Push

3. Commit消息合并(多个提交记录合并成一个)

3.1 合并多个Commit(IDEA可视化)

  1. 打开Git日志

    • 快捷键 Alt+9 → 选择当前功能分支
    • 找到最早需要合并的Commit(如初始提交)
  2. 启动交互式Rebase

    • 右键目标Commit → Interactively Rebase from Here

    • 在编辑界面修改指令:

      pick 3a4b5c 初始提交
      squash 6d7e8f 修复样式问题
      squash 9g0h1i 补充单元测试
      
  3. 编辑最终消息

    • 按规范格式编写:

      feat(order): 实现订单导出功能
      - 新增CSV/Excel双格式支持
      - 优化大数据量分页查询
      - 修复金额单位转换缺陷
      
  4. 强制推送

    • 终端执行:

      git push origin feat/order-export --force-with-lease
      

4. 紧急修复流程(Fix)

4.1 创建热修复分支

  1. main 创建分支:

    • 右下角分支列表 → 选择 mainCheckout
    • 右键 → New Branch → 输入 fix/问题描述
  2. 修复并测试:

    • 必须包含测试用例 → 右键测试类 → Run 'Tests'
  3. 双通道合并

    • 先合并到 main

      git checkout main
      git merge --no-ff fix/login-error
      
    • 再合并到 test

      git checkout test
      git merge fix/login-error
      

5. 选择性发布生产环境

5.1 临时发布分支操作指南

当前 test 分支中包含多个开发中的功能,但我只需要将自己负责的部分发布到生产环境。为避免影响其他人代码,采用 main 分支新建发布分支 + 从 test 中 cherry-pick 我的提交 的方式进行操作。

  1. 创建发布分支

    • 右下角分支列表 → 选择生产分钟 mainCheckout
    • 右键项目 → GitBranchesNew Branch
    • 输入:release/v1.2 → 点击 Create
  2. 选择需要发布的提交记录

    • 打开Git的Log,选择test分支的提交记录
    • 从最下面开始,选择记录,右击cherry-pick image
    • 依次cherry-pic后,对功能进行测试
  3. 合并到main分支

    • 切换回 main 分支 → 右键 release/v1.2Merge into Current

    • 打标签:

      git tag -a v1.2.0 -m "Release order export"
      git push origin v1.2.0
      

6. 冲突解决(IDEA专属方案)

6.1 标准解决流程

  1. 更新代码时冲突:Ctrl+T → 自动弹出冲突对话框

  2. 使用三窗格工具:

    • 左侧:你的修改
    • 右侧:他人修改
    • 中间:合并结果(手动编辑)
  3. 标记解决:点击 Mark as ResolvedApply

6.2 Rebase冲突处理

  1. 冲突发生时 → IDEA会自动暂停

  2. 解决后执行:

    git add .
    git rebase --continue
    
    
    

7. 规范要求

  • ✅ 合并到 test 前必须运行本地测试
  • ❌ 禁止直接向 main 提交代码(采用合并的方式)
  • 🔄 每日工作前先 Ctrl+T 更新分支

8. 快捷键速查

操作 快捷键
提交代码 Ctrl+K
推送代码 Ctrl+Shift+K
拉取更新 Ctrl+T