git 分支间代码同步操作指南 场景说明当前位置a 分支目标1将 b 分支的更新拉到 a 分支目标2将 a 分支的更新同步给 b 分支一、将 b 分支的更新拉到 a 分支方法1命令行操作# 1. 确认当前在 a 分支gitbranch# 2. 确保 a 分支代码已提交gitstatusgitadd.gitcommit-m提交 a 分支的修改# 3. 合并 b 分支到 a 分支gitmerge b# 4. 如果有冲突解决冲突后gitadd.gitcommit-m解决合并冲突# 5. 推送到远程如果需要gitpush origin a方法2IDEA 操作步骤 1. 确保当前在 a 分支IDEA 右下角查看 2. 右键项目根目录 → Git → Merge 3. 在弹窗中选择 b 分支 4. 点击 Merge 按钮 5. 如果有冲突IDEA 会提示解决冲突 6. 解决冲突后提交二、将 a 分支的更新同步给 b 分支方法1命令行操作# 1. 切换到 b 分支gitcheckout b# 2. 确保 b 分支是最新的如果有远程分支gitpull origin b# 3. 合并 a 分支到 b 分支gitmerge a# 4. 如果有冲突解决冲突后gitadd.gitcommit-m解决合并冲突# 5. 推送到远程gitpush origin b# 6. 切换回 a 分支gitcheckout a方法2IDEA 操作步骤 1. 右下角点击当前分支 a 2. 选择 b → Checkout切换到 b 分支 3. 右键项目根目录 → Git → Merge 4. 在弹窗中选择 a 分支 5. 点击 Merge 按钮 6. 解决冲突如果有 7. 提交并推送 8. 右下角再切换回 a 分支三、完整操作流程推荐场景双向同步 a 和 b 分支# 第一步将 b 分支合并到 a 分支 # 当前在 a 分支gitstatus# 检查工作区gitadd.# 暂存修改gitcommit-ma 分支的修改# 提交 a 分支修改gitmerge b# 合并 b 分支# 解决冲突如果有gitpush origin a# 推送 a 分支# 第二步将 a 分支合并到 b 分支 gitcheckout b# 切换到 b 分支gitmerge a# 合并 a 分支此时通常无冲突gitpush origin b# 推送 b 分支# 第三步回到 a 分支 gitcheckout a# 切换回 a 分支四、使用 Rebase 方式可选如果希望保持线性历史# 在 a 分支上 gitrebase b# 将 a 分支的提交应用到 b 分支之上# 在 b 分支上 gitcheckout bgitrebase a# 将 b 分支的提交应用到 a 分支之上⚠️Rebase 注意事项Rebase 会改写提交历史不要在公共分支上使用 rebase适合个人开发分支整理提交历史五、冲突解决流程当出现合并冲突时# 1. Git 会提示冲突文件gitstatus# 2. 打开冲突文件查找冲突标记# HEAD# a 分支的内容# # b 分支的内容# b# 3. 手动编辑保留需要的内容# 4. 标记冲突已解决gitadd冲突文件# 5. 完成合并gitcommit-m解决 a 和 b 分支的合并冲突IDEA 冲突解决1. IDEA 会弹出 Conflicts 窗口 2. 点击 Merge 打开三方对比工具 3. 左侧当前分支a内容 4. 中间合并结果 5. 右侧被合并分支b内容 6. 选择接受左侧/右侧或手动编辑中间 7. 点击 Apply 完成六、最佳实践建议✅ 推荐做法操作建议合并前先提交当前分支的所有修改频率经常合并主分支到功能分支减少冲突冲突及时解决冲突不要积累推送合并后及时推送到远程测试合并后运行测试确保代码正常❌ 避免的做法❌ 在有未提交修改时进行合并❌ 长时间不同步分支导致大量冲突❌ 强制推送覆盖他人代码❌ 在公共分支上使用 rebase七、可视化流程图双向同步示意图初始状态 a: A1 → A2 → A3 ↗ b: B1 → B2 步骤1b 合并到 a a: A1 → A2 → A3 → M1(合并提交) ↗ ↗ b: B1 → B2 -------- 步骤2a 合并到 b a: A1 → A2 → A3 → M1 ↗ ↗ b: B1 → B2 -------- → M1(快进合并) 结果两个分支代码一致八、快速命令参考# 场景1b → a gitmerge b# 在 a 分支执行# 场景2a → b gitcheckout bgitmerge a# 切换并合并# 双向同步 gitmerge bgitcheckout bgitmerge agitcheckout a# 查看分支差异 gitdiffa b# 比较两个分支差异gitlog a..b# 查看 b 比 a 多的提交gitlog b..a# 查看 a 比 b 多的提交九、总结需求操作当前分支b → agit merge ba 分支a → bgit checkout bgit merge a先切到 b双向同步先 b→a再 a→b两步操作