用途:将功能分支以 squash 方式合并到 main,保持线性提交历史。
主要能力:合并前执行预检——确定源分支(可用参数指定,如 /squash feature/my-branch,否则用当前分支)、确认不在 main 上、用 git status --porcelain 检查未提交改动、用 git rev-parse --verify 验证分支存在、用 git log main..<branch> --oneline 验证存在差异;随后切到 main,若存在 origin 则 git pull --ff-only 拉取;执行 git merge --squash <branch>;把提交委托给 /commit(不直接编写提交信息);合并后验证 git log --oneline -5、git status、git diff 确认工作区干净、压缩提交在 HEAD;最后清理分支。
清理方式:先尝试 git branch -d,若失败(squash 合并不保留祖先关系属预期)则用 git diff main <branch> 确认零差异后 git branch -D;若存在远程跟踪分支则 git push origin --delete <branch>。
规则与限制:预检即安全门,故不再要求确认即继续;只合并进 main;始终用 --squash,不采用快进或普通合并;提交一律交给 /commit;发生冲突即 git merge --abort 并回源分支,建议 git rebase main 后停止,绝不自动解决;绝不 force-push;优先 -d,仅在零差异验证后用 -D;任一步失败即停止并报告。若 main 已分叉导致 ff-only 失败也会中止,需人工处理。
适用场景:需要把已完成的功能分支整理成单个提交并入 main 的日常开发流程。资料未提供安装方式、平台与收费信息。