You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git合并Feature分支至Master分支,仅保留单个提交的方法

如何将Feature分支的所有修改合并为单个提交到Master分支

我来帮你搞定这个问题!你想要的是把Feature分支的所有修改打包成单个提交合并到Master,同时不保留Feature分支的历史记录和多个小提交对吧?这时候用Git的squash合并就完美匹配你的需求,具体操作步骤如下:

  • 首先切换到Master分支,并拉取远程最新的代码,确保本地分支是最新状态:
    git checkout master
    git pull origin master
    
  • 执行squash合并命令,把Feature分支的所有提交压缩成一个暂存的修改集(把feature-branch替换成你实际的Feature分支名称):
    git merge --squash feature-branch
    
  • 这时候Git会把Feature分支的所有修改都暂存起来,但不会自动提交。你需要手动执行提交命令,然后写一个能概括所有修改的提交信息(比如“完成用户管理模块开发:新增注册、登录权限控制”):
    git commit
    
    (执行这个命令后会打开默认的编辑器,你可以编辑提交信息,保存退出就完成提交了)
  • 最后把合并后的Master分支推送到远程仓库:
    git push origin master
    

为什么这个方法符合你的需求?

  • 普通合并(默认的--no-ff模式)会保留Feature分支的完整历史和分支结构,所以Master上会显示所有提交和分支记录;
  • 变基是把Feature的所有提交“移动”到Master的最新提交之后,虽然没有分支记录,但还是会保留多个小提交;
  • 而squash合并会把Feature分支的所有提交压缩成一个全新的提交,Master分支的历史上只会看到这一个合并提交,同时所有修改都被整合进去了。

一些注意事项

  • 确保在合并前本地Master分支是最新的,避免合并时出现冲突;
  • 如果你的Feature分支是多人协作开发的,squash合并后,本地Feature分支的历史和Master的新提交没有关联,后续如果还要基于这个Feature开发,建议重新从Master拉取新的分支,避免历史混乱;
  • 如果你已经把Feature分支推送到远程仓库,不要强制推送修改后的Feature分支(除非团队所有成员都清楚并同意),否则会打乱其他人的工作进度。

内容的提问来源于stack exchange,提问作者Monir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:19:38