如何将Git分支update/user-section的所有提交合并为单个提交
Git分支多提交合并为单提交操作方案
适用场景
你需要将update/user-section分支上的11条连续提交合并为1条,且保留在原分支内,可选择以下两种操作方式:
方法一:交互式rebase(灵活可控)
- 切换到目标分支:
git checkout update/user-section - 启动交互式变基,指定合并最近11条提交:
git rebase -i HEAD~11 - 在弹出的编辑器中,将第一条提交前的
pick保留,其余10条提交前的pick修改为s(即squash,意为合并到上一条提交),保存并关闭编辑器 - 在后续弹出的提交信息编辑页中,删除原有所有提交信息,输入你要设置的合并后提交信息,保存关闭即可完成本地合并
- 若你此前已将该分支提交推送到远程仓库,执行强制推送更新远程分支:
git push origin update/user-section -f
方法二:软重置(操作快捷)
- 切换到目标分支:
git checkout update/user-section - 执行软重置,将分支指针回退到11条提交之前的节点,保留工作区所有修改内容:
git reset --soft HEAD~11 - 直接提交当前所有修改:
git commit -m "合并后的提交信息" - 若此前已推送过远程,执行强制推送:
git push origin update/user-section -f
注意:多人协作场景下,若该分支已有其他协同人员拉取过,操作前请先同步告知所有协作者,操作完成后协作者本地需要执行
git pull --rebase origin update/user-section同步新的提交历史,避免产生多余的合并提交。
内容的提问来源于stack exchange,提问作者Rade Iliev
相关产品推荐
相关产品推荐

