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

Git 分支merge合并常用步骤与命令操作

( Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu )
(注:文章采用豆包AI做输出材料整理)

使用git做代码的管理,对于开发人员来说,时常要做的就是代码分支的合并。
如何来做代码分支的合并呢,如何能够较少的出差错来做代码分支的merge合并。

对于向master分支合并的过程,个人感觉的话,采用如下的策略步骤:

  1. 提前清理环境,保证待合并分支目录干净:切master→拉远端最新→stash清脏区→校验干净。
  2. 选择合并操作:预览分支差异→按需 普通合并 或 squash 合并。
  3. 解决合并冲突:冲突合并策略三选一,之后解决冲突→自查代码 + 编译跑通。
  4. 提交但不push远端,检查合并内容:本地 commit→看分支树 + 差异核验。
  5. 合并内容检查测试通过,Push远端:dry-run 模拟推送→确认后真实 push。
  6. 合并内容异常,回退重新合并:本地未 push 直接 reset 回退;清临时缓存之后再重新走合并。

第一步:清理环境,确保master 干净

目标:合并前必须让本地master分支无未提交修改、无冲突文件

# 1. 切换到主分支 mastergitcheckout master# 2. 拉取远端最新代码(避免本地过时)gitpull origin master# 3. 清理未提交的修改(暂存/丢弃二选一)# 方案A:暂存修改(后续还能用)⭐推荐gitstash# 方案B:直接丢弃所有未提交修改(谨慎使用)# git reset --hard && git clean -fd# 4. 验证环境是否干净(输出 nothing to commit 即成功)gitstatus

第二步:执行合并(二选一:区别是,保留还是压缩提交历史)

选项1:保留完整提交历史(默认,通常推荐保留子提交历史)

直接合并,分支所有提交记录都会保留:

# 合并你的分支到 mastergitmerge branch1

选项2:压缩提交历史(Squash,干净整洁)

把分支上所有提交打包成 1 个新提交,看不到原始提交记录:

gitmerge--squashbranch1

执行后会自动暂存所有变更,需要手动 commit


第三步:解决合并冲突(3 种方案)

如果合并时报Automatic merge failed; fix conflicts and then commit the result.,就是有冲突。

冲突处理方案

  1. 使用 master 版本(保留主分支代码)
    丢弃分支的修改,完全用 master 原有代码
  2. 使用分支版本(保留开发分支代码)
    丢弃 master 的修改,完全用分支代码
  3. 手动修改代码 → 标记为已解决(最常用)
    手动编辑冲突文件,删除<<<<<<</=======/>>>>>>>标记

命令行快速解决冲突

# 查看哪些文件冲突gitstatus# 方案1:指定文件使用 master 版本gitcheckout--ours冲突文件路径# 方案2:指定文件使用分支版本gitcheckout--theirs冲突文件路径# 方案3:手动修改后,标记冲突已解决gitadd冲突文件路径# 所有冲突解决后gitcommit

第四步:本地提交,检查合并结果(不 Push)

  1. 完成合并/解决冲突后,执行提交:
# squash 合并必须手动 commit;普通合并可直接commitgitcommit-m"合并分支:branch1"
  1. 检查分支树和修改记录
# 图形化查看分支合并记录 ⭐gitlog--graph--oneline--all
  • Differ with parent1:你合并分支(branch1)的修改
  • Differ with parent2:主分支 master 的修改
    核对修改内容,确认无误再推送。

第五步:推送远端 / 合并失败回退

1. 确认无误,推送到服务器

gitpush origin master

2. 合并出错,回退重来

如果合并后发现错误,恢复到合并前的干净 master

# 查看合并前的 commit IDgitreflog# 回退到合并前的版本(替换为你的commit ID)gitreset--hard合并前的commitID# 清理残留文件gitclean-fd# 恢复后重新拉取最新代码gitpull origin master

回退后回到第一步,发起重新合并。


完整极简命令速查表

# 1. 清理环境gitcheckout mastergitpullgitstashgitstatus# 2. 合并(二选一)gitmerge 分支名# 保留历史gitmerge--squash分支名# 压缩历史# 3. 解决冲突 → git add → git commit# 4. 检查gitlog--graph# 5. 推送/回退gitpush# 出错回退:git reset --hard 版本号

总结

  1. 合并核心:先清环境、再合并、解冲突、本地检查,提交但不推送,** 核查提交文件,检查通过再推送**。
  2. 历史选择:大多情况用普通合并,特别是协作开发,精简提交历史时采用squash合并
  3. 安全兜底:推送前,合并出错用git reset --hard回退,之后重新发起合并。推送后,对于团队工作方式,再发现出错大多采用新提交修复方式,一般不覆盖推送。

( Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu )

http://www.rkmt.cn/news/1453216.html

相关文章:

  • 深圳翡翠回收:2026年实地走访,行家甄选,六大机构各有专长 - 薛定谔的梨花猫
  • 匠选:变压器吊装公司推荐榜 - 品牌推广大师
  • 手把手实战:用PyTorch复现MIMO-UNet图像去模糊(从数据准备到模型训练全流程)
  • 2026玻璃钢储罐厂家实测盘点 多场景化工环保罐体选型参考指南 - GrowthUME
  • 铜鼓县26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • Meta AI 助力黑客攻击,多知名 Instagram 账号被盗,开启 MFA 可防范
  • NBTExplorer:从数据黑盒到可视化操控,解密《我的世界》游戏数据的终极方案
  • 万安县26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 2026江浙沪企业团建攻略!天目湖涵田全系度假村优势详解 - 资讯速览
  • 从黑盒到白盒:严谨软件工程的三大支柱与实践指南
  • 扬州本地家电维修师傅电话推荐|本地维修家电|欧米到家统一报修 - 欧米到家
  • 信奥想拿到好的成绩,比如进入省队,就一定要找NOI金牌做教练吗?
  • 除了激活,关于IAR Embedded Workbench License你还需要知道的几件事:类型、管理与合规建议
  • 百度网盘直链解析终极指南:5分钟解锁全速下载的完整方案
  • B站视频转文字终极指南:5分钟学会免费高效的语音转文字工具
  • 微信聊天记录永久保存指南:用WeChatExporter守护你的数字记忆
  • 词达人自动化助手终极指南:5分钟解放你的英语学习时间
  • 从一次vsftpd 550故障排查,聊聊Linux服务配置的‘边界思维’
  • AMD Ryzen处理器调试终极指南:免费开源SMUDebugTool完全掌握
  • BetterJoy终极指南:在Windows上完美使用Switch手柄的完整方案
  • 2026年食品厂/耐磨/固化/工业地坪厂家推荐榜:食品车间、厂房、车库、停车场、篮球场及撒石地坪品牌实力解析与选购指南 - 品牌企业推荐师(官方)
  • 2026年成都企业定制酱酒与酱酒加盟选型指南:源头直营品牌深度评测 - 优质企业观察收录
  • 电路小匠BOOST电路教程
  • 工业级Modbus ASCII实时监控系统(WinForms完整实现)
  • 新吴区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 从strtok到现代C++:三种更优雅的字符串分割方法实战(含性能对比)
  • Claude Code 别再乱烧钱了:一篇讲透 KV 缓存的硬核实战指南,让你的套餐多撑 3-5 倍
  • 婺源县26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 泉山区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 2026大提花面料定制厂家面料工艺实测牛津布面料现货厂家原料与成品综合性能测评分析 - 栗子测评