跳到主要内容

Squash 合并

Squash 合并是一种合并策略,它会将 Pull Request 中的所有提交压缩(Squash)成一个单一的提交,然后将这个合并提交应用到目标分支上。这可以帮助项目保持干净的提交历史,而不会因为大量小提交而变得混乱。

通常,Squash 合并用于将一个功能或修复合并到主分支时,以便保持提交历史的连贯性。

适用场景

​ 1. 当一个 Pull Request 包含多个中间状态的提交,而这些提交在目标分支中并没有独立意义。

​ 2. 团队希望保持整洁的提交记录,便于代码审查和后续维护。

​ 3. Pull Request 关联的功能较小,所有变更可以自然地总结在一个提交中。

使用 Squash 合并


使用 Squash 合并的基本步骤如下:

  1. 确保开启了 Squash 合并
  • 在项目详情页点击「项目设置」->「Pull Requests设置」,并在「Pull Requests-合并模式」中启用了「通过 merge commit 合并」。

image-20241231202754512

  1. 接受Squash 合并
  • 需要Squash 合并的话要求PR创建者在创建PR时勾选「接受Pull Request合入时Squash提交」。

image-20250102102251690

  1. 启用 Squash 合并选项
  • 在PR详情页「讨论」选项卡的下方,你将看到 Squash 合并的复选框。

  • 为合并提交提供一个清晰的描述,以便其他开发者了解合并的目的和更改。

image-20250102102822547

  1. 完成合并
  • 点击「合入」 按钮,GitCode 将合并多个提交并生成一个新的提交。

  • Squash 合并功能可以更好地管理提交历史,使项目的版本控制和代码审查更加清晰和有序。

注意事项

​ 1. 原始提交记录会丢失

​ • Squash 合并后,Pull Request 的所有原始提交将被压缩到一个提交中,历史无法分开查看。

​ 2. 不适合大型功能开发

​ • 如果一个 Pull Request 涉及多个独立功能,建议保持独立提交记录,而不是使用 Squash。

​ 3. 协作开发中的一致性

​ • 团队应明确约定何时使用 Squash 合并,避免风格不一致。