当前位置: 首页 > news >正文

Git 分支合并实战指南

文章目录

    • 🎯 推荐方案:使用 Merge(团队协作首选)
      • 步骤 1:切换到 main 分支并拉取最新代码
      • 步骤 2:切换回你的功能分支
      • 步骤 3:将 main 的最新代码合并到你的分支
      • 步骤 4:推送到远程
      • 步骤 5:创建 Pull Request 合并到 main
    • 🌿 备选方案:使用 Rebase(个人开发可选)
      • 步骤 1-2:同上,更新 main 分支
      • 步骤 3:将 main 的最新代码 rebase 到你的分支
      • 步骤 4:强制推送到远程
      • 步骤 5:创建 Pull Request
    • 方案对比:为什么推荐 Merge?
    • 流程图

当你的功能分支(gouxinjie)准备合并到主分支(main)时,同时需要同步主分支上其他同事推送的最新代码,这里我提供两种完整方案。推荐优先使用 Merge 方案,它在团队协作中更稳健、容错性更强。

🎯 推荐方案:使用 Merge(团队协作首选)

Merge操作是最安全、最透明的协作方式,保留完整历史记录,便于追溯和回滚,适合多人协作场景。

步骤 1:切换到 main 分支并拉取最新代码

gitcheckout maingitpull origin main

步骤 2:切换回你的功能分支

gitcheckout gouxinjie

步骤 3:将 main 的最新代码合并到你的分支

gitmerge main

这一步解决核心需求:把别人推到 main 上的新代码,同步合并到你的分支中。

如果出现冲突

# 1. 查看冲突文件gitstatus# 2. 编辑解决冲突(冲突标记:<<<<<<< HEAD / ======= / >>>>>>> main)# 3. 标记已解决gitadd<冲突文件1><冲突文件2># 4. 完成合并提交gitcommit# 会弹出编辑器,保存默认的合并提交信息即可

步骤 4:推送到远程

gitpush origin gouxinjie

无需 force push,不会覆盖他人代码,安全可靠。

步骤 5:创建 Pull Request 合并到 main

在 GitHub/GitLab 等平台操作:

  1. gouxinjie分支向main分支发起Pull Request / Merge Request
  2. 经过 Code Review 后点击Merge
  3. 选择“Create a merge commit”“Squash and merge”(根据团队规范)
# 或者本地完成最终合并(如果团队允许)gitcheckout maingitmerge gouxinjiegitpush origin main

🌿 备选方案:使用 Rebase(个人开发可选)

Rebase 能让提交历史保持线性整洁,但需要 force push,在多人协作时风险较高。

步骤 1-2:同上,更新 main 分支

gitcheckout maingitpull origin maingitcheckout gouxinjie

步骤 3:将 main 的最新代码 rebase 到你的分支

gitrebase main

如果出现冲突

# 解决冲突后gitadd<冲突文件>gitrebase--continue# 放弃 rebase 回退原状gitrebase--abort

步骤 4:强制推送到远程

gitpush origin gouxinjie --force-with-lease

⚠️--force-with-lease--force安全,但如果团队其他人基于你的分支开发,绝对不要使用 rebase

步骤 5:创建 Pull Request

同 Merge 方案,发起 PR 审核后合并。

方案对比:为什么推荐 Merge?

维度Merge(推荐)Rebase
安全性✅ 无需 force push,不会意外覆盖他人代码⚠️ 必须 force push,存在覆盖风险
历史记录✅ 完整保留分支合并历史,便于追溯历史被改写,呈线性
协作友好度✅ 多人协作同一分支时完全安全❌ 他人基于你的分支开发时严禁使用
回滚难度✅ 简单,每个合并点清晰可查较复杂,需要 reflog 找回
历史美观度可能出现"分叉"图线性历史,更整洁
学习成本低,冲突处理直观较高,需理解 rebase 机制

决策建议

场景推荐方案
团队项目、多人协作Merge
个人项目、独立分支Rebase 可选
需要保留完整审计记录Merge
开源项目贡献(fork 仓库)Rebase 后提 PR
分支已分享给他人协作绝对用 Merge

流程图

1、总体流程图


2、分支演变示意图


🚀 感谢阅读!想了解更多?

📖我的博客网站| 记录思考,分享干货
🏡我的个人主页| 关于我、开源项目


http://www.jsqmd.com/news/1289532/

相关文章:

  • Joker AIX 3D 导演台全解析:一站式影视分镜预演工作流
  • 深耕真空搅拌设备|东莞瑞景智造:技术破局,赋能全球新材料产业 - GrowthUME
  • AWS亚马逊云代理商:AI Agent接管运维安全吗?
  • Java 编程语言入门指南
  • 提示词失效?你可能正踩中这5个隐性陷阱:20年CV/NLP双领域专家拆解AI绘画语义解析机制
  • 快速搭建 xiao/xiaozhi 环境:5分钟启动你的AI语音助手
  • 为什么选择iDRAC-Redfish-Scripting?Dell PowerEdge服务器自动化管理的终极解决方案
  • 当每个系统都需要文档能力,企业该如何避免重复建设?
  • 以机器学习为基础的房价预测分析研究123(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (14)--- Teacher
  • “千问办公”已经下载安装了
  • 6大AI入口谁全覆盖?2026年4家杭州GEO服务商交付流程横评 - 速递信息
  • AWS云技术基础:从基础设施到高可用Web应用实战
  • QuickRecorder:7种专业录制模式,打造macOS最佳屏幕录制体验
  • BeeRef常见问题解决:从日志查看 to 性能优化的实用技巧
  • 致焦虑的程序员:AI 不会让你失业,但“写 CRUD”会
  • 幻兽帕鲁存档的深度解析:掌握palworld-save-tools的核心架构与实战应用 [特殊字符]
  • RaZ引擎音频系统开发详解:3D空间音效与实时音频处理技术
  • 单级会员分销系统开发:从零到一构建你的社交电商核心
  • TaskbarX:Windows任务栏美化终极指南 - 42种动画效果打造专业桌面体验
  • 在树莓派上部署SPARTA:低成本空间音频开发方案详解
  • 企业如何管理员工AI使用成本?
  • 网络安全与前沿科技:挑战、防御与未来趋势
  • 2026“手残”是标签还是借口?成年人学习新技能的心理真相 - 热点速览
  • Python 编程入门指南
  • 2026闲置爱心商务卡如何回收变现?多渠道横向实测对比指南 - 京顺回收
  • 带镜子的蓝牙耳机实测横评:便携创新设计,多机型客观选购参考
  • 绝版胶片数字化最后窗口期:AI画面修复黄金72小时法则,错过将永久丧失纹理重建能力(附时间敏感性验证数据)
  • Spected与Ramda:函数式编程在数据验证中的完美结合
  • 2026南京卫生间漏水到楼下免砸砖怎么修|屋顶外墙渗水维修,本地正规防水公司推荐【7月新更】 - 鑫诺很靠谱