news 2026/9/3 5:01:05

Git :如何把多次提交的功能分支合并提交到 master,只保留一条提交记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git :如何把多次提交的功能分支合并提交到 master,只保留一条提交记录

在日常开发中,我们经常会遇到这样的情况:
一个功能分支上反复提交了很多零碎 commit(如“优化提示词”“调整参数”“修复小问题”),
但合并到 master 时,希望只留下 1 条干净、有语义的提交记录

本文结合真实场景,介绍最推荐、最安全的做法


一、问题背景

我在refactor-prompt分支上,提交了大量零碎 commit,例如:

  • 优化提示词
  • 新增智能助手 SSE 接口
  • 修改接口响应类型为 SSE
  • 移除测试接口
  • 调整参数
  • 优化 tools 名称

这些提交在功能开发阶段是非常合理的,但如果直接 merge 到master,会导致:

  • master 提交历史非常杂乱
  • 很多 commit 信息重复、没有语义
  • 回滚、审计、Code Review 成本上升

所以:

我们把refactor-prompt的所有改动合并到master的时候,
建议 master 上只保留 1 条提交记录。


二、最推荐方案:git merge --squash

这是我个人最推荐、也是团队中最常用的方案

为什么选 squash merge?

  • ✅ 不改分支历史(安全)
  • ✅ 不需要 force push
  • ✅ master 提交历史干净
  • ✅ 非常适合功能分支 → 主分支

三、完整操作步骤(一步步来)

1️⃣ 切换到 master 分支

git checkout master

2️⃣ 确保 master 是最新的(很重要)

git pull origin master

3️⃣ 使用 squash 合并分支

git merge --squash refactor-prompt

这一步做了什么?

  • refactor-prompt上的所有改动
  • 一次性应用到master
  • 不会生成任何 commit
  • 改动会全部处于「已暂存(staged)」状态

4️⃣ 手动提交为一条记录

git commit -m "feat: 智能助手-小美 SSE 接口与提示词优化"

你可以根据项目实际情况,自定义一条语义清晰的提交信息


5️⃣ 推送到远程 master

git push origin master

6️⃣ (可选)删除功能分支

如果分支已经完成使命:

git branch -d refactor-prompt git push origin --delete refactor-prompt

四、最终效果

master分支上:

  • 只有1 条提交
  • 提交信息清晰、可读
  • 历史干净、可维护

refactor-prompt分支上:

  • 仍然保留原始开发过程
  • 不影响问题定位和回溯

五、对比另一种方案(相对不推荐)

方案:git rebase -i压缩提交

这种也能做到“只留一条提交”,但存在问题:

  • ❌ 会修改分支历史
  • ❌ 已 push 的分支需要git push -f
  • ❌ 多人协作时容易出事故

建议:

功能分支合并到 master:优先使用merge --squash


六、一些建议

1️⃣ 功能分支可以随便提交

开发过程中:

  • commit 可以频繁
  • commit 信息可以偏“过程化”
  • 不必过度纠结

2️⃣ master 分支必须“像日志一样干净”

master 上的 commit 应该做到:

  • 一条 commit = 一个完整业务改动
  • 能被产品 / 运维 / 未来的自己看懂
  • 能随时回滚

七、推荐的提交信息规范(示例)

feat: 智能助手-小美 SSE 接口 refactor: 优化提示词与 tool 定义 fix: 修复 SSE 流式响应中断问题 chore: 移除测试接口
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:59:06

Maccy剪贴板管理器:让复制粘贴效率翻倍的终极解决方案

Maccy剪贴板管理器:让复制粘贴效率翻倍的终极解决方案 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy 你是否经常在多个文档间来回切换,却找不到刚才复制的内容&#xff1f…

作者头像 李华
网站建设 2026/9/3 2:24:53

2025终极DamaiHelper抢票神器完整使用教程

2025终极DamaiHelper抢票神器完整使用教程 【免费下载链接】damaihelper 大麦助手 - 抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper DamaiHelper大麦助手是一款免费开源的Python抢票脚本,专门针对大麦网热门演出票务抢购难题设计。这款…

作者头像 李华
网站建设 2026/9/2 22:56:30

Vivado注册2035操作指南:精准设置License路径

Vivado注册2035实战指南:从License原理到路径精准配置你有没有遇到过这样的场景?刚装好Vivado,一打开却弹出“License checkout failed”或某些IP核灰显不可用的提示。点进Help → Manage License一看,功能模块要么缺失、要么只剩…

作者头像 李华
网站建设 2026/9/3 0:03:39

3分钟掌握Typora图表插入:drawIO插件终极指南

3分钟掌握Typora图表插入:drawIO插件终极指南 【免费下载链接】typora_plugin Typora plugin. feature enhancement tool | Typora 插件,功能增强工具 项目地址: https://gitcode.com/gh_mirrors/ty/typora_plugin Typora drawIO插件是专为Markdo…

作者头像 李华
网站建设 2026/9/2 21:43:20

数字音乐解锁:让加密音频重获自由的艺术

数字音乐解锁:让加密音频重获自由的艺术 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/9/2 23:49:34

抖音视频无水印下载终极指南:一键获取纯净版视频

抖音视频无水印下载终极指南:一键获取纯净版视频 【免费下载链接】kill-douyin-watermark-online 抖音视频无水印解析傻瓜式下载,仔细看源码可以集成到你自己的程序中。 项目地址: https://gitcode.com/gh_mirrors/ki/kill-douyin-watermark-online …

作者头像 李华