在团队协作开发中,分支管理是 Git 使用中最关键的部分之一。为了保持提交历史的清晰与简洁,我们可以使用 git rebase 和 git squash 来整理本地分支的提交历史,再将其合并进主分支。
本文将从两个角度介绍如何使用 rebase 和 squash 进行分支管理:
- 使用命令行操作 (Git 原生命令)
- 使用 WebStorm 插件
一、使用命令行进行 rebase 与 squash
1. 什么是 rebase?
git rebase 是将当前分支的提交 「重新应用」 到另一个分支的最新提交之上。它可以帮助我们保持提交历史的线性,避免不必要的合并提交。
示例命令:
git checkout test
git rebase main
这会将 test 上的所有提交重新应用在 main 分支的最新提交之上。

2. 什么是 squash?
git squash 是将多个提交合并为一个提交。它常用于将一个功能分支的多个小提交合并为一个有意义的提交,方便代码审查和后续维护。
示例命令 (在 rebase 过程中 squash):
git rebase -i main
进入交互式 rebase 界面后,你可以将某些提交前的 pick 改为 squash 或 s,表示将这些提交合并到前一个提交中。

3. 推送 rebase 后的分支
由于 rebase 会改写提交历史,因此推送时需要使用 --force:
bash 深色版本 git push origin feature/your-branch --force
注意:如果你和其他人正在协作同一个分支,强制推送可能导致冲突,务必提前沟通。
二、使用 WebStorm 插件进行 rebase 与 squash
WebStorm 提供了强大的 Git 集成工具,可以让你在图形界面中完成 rebase 和 squash 操作,无需记住命令行语法。
优势:
- 图形化展示提交历史
- 支持交互式 rebase
- 支持一键 squash 提交
- 自动解决冲突工具
功能包括 (请根据插件补充):
- Update Project(使用 rebase)
- 交互式变基 (Interactive Rebase)
- 提交合并 (Squash Commits)
- 可视化冲突解决
- 一键推送与强制推送
1. 提交
2. 变基和交互式变基
3. 强制推送







Comments NOTHING