使用 rebase&squash 进行分支管理

时之世 发布于 2025-07-20 2018 次阅读 预计阅读时间: 3 分钟 最后更新于 11 天前 558 字 无~


在团队协作开发中,分支管理是 Git 使用中最关键的部分之一。为了保持提交历史的清晰与简洁,我们可以使用 git rebasegit squash 来整理本地分支的提交历史,再将其合并进主分支。

本文将从两个角度介绍如何使用 rebasesquash 进行分支管理:

  1. 使用命令行操作 (Git 原生命令)
  2. 使用 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 改为 squashs,表示将这些提交合并到前一个提交中。

3. 推送 rebase 后的分支

由于 rebase 会改写提交历史,因此推送时需要使用 --force

bash 深色版本 git push origin feature/your-branch --force

注意:如果你和其他人正在协作同一个分支,强制推送可能导致冲突,务必提前沟通。


二、使用 WebStorm 插件进行 rebase 与 squash

WebStorm 提供了强大的 Git 集成工具,可以让你在图形界面中完成 rebasesquash 操作,无需记住命令行语法。

优势:

  • 图形化展示提交历史
  • 支持交互式 rebase
  • 支持一键 squash 提交
  • 自动解决冲突工具

功能包括 (请根据插件补充):

  • Update Project(使用 rebase)
  • 交互式变基 (Interactive Rebase)
  • 提交合并 (Squash Commits)
  • 可视化冲突解决
  • 一键推送与强制推送

1. 提交

2. 变基和交互式变基

3. 强制推送