首页/开发/Git 与协作速查/git merge --squash 压缩合并
合并变基与冲突71 条

git merge --squash 压缩合并

把被合并分支的净差异压成一次「已暂存待提交」的改动,不产生合并提交也不记录父子关系,适合把杂乱的临时分支整理后并入。

Git 与协作速查开发更新于 2026-10-12
用途把分支差异合并为单次提交
语法git merge --squash <分支>
结果改动进入暂存区,需手动 commit

常用示例

常用示例
git switch main
git merge --squash feature/wip
git status --short
git commit -m 'feat: 合并登录模块改造'

核对差异

核对差异
git diff --cached --stat
git diff --cached
squash 不建立与源分支的关联,之后源分支的后续提交需要再手动并入;合并前用 diff --cached 复核内容再提交。

易错点

  • squash 后原作者信息不会进入历史,贡献统计可能不含对方,介意归属时改用保留提交的方式
  • 忘记手动提交就切换分支,暂存改动会跟随到目标分支,提交前先确认当前分支

数据来源与参考

  • Git 官方文档:git-merge(--squash)
  • GitHub Docs:About merge methods on GitHub(squash merge)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌