Help us learn about your current experience with the documentation. Take the survey.

压缩并合并

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

压缩并合并将多个小提交合并成一个有意义的提交。 这种策略能让你的仓库历史保持整洁,也更容易追踪或回滚更改。 当你同时处理多个功能时,压缩操作会将每个功能的更改分隔成独立的逻辑单元。

  • 小提交会被合并在一起,使得回滚更改的所有部分更加简单。
  • 当单个提交合并到目标分支时,它会保留完整的提交历史。
  • 你的基础分支保持整洁,并包含有意义的提交信息。

压缩并合并工作流

每次分支合并到你的基础分支时,最多会添加两个提交:

  • 通过压缩分支中的提交创建的单个提交。
  • 一个合并提交,除非你在项目中启用了快速合并。快速合并会禁用合并提交。

默认情况下,压缩提交包含以下元数据:

  • Message:压缩提交的描述,或自定义消息
  • Author:创建合并请求的用户
  • Committer:发起压缩操作的用户

项目所有者可以为所有压缩提交和合并提交创建新的默认消息

为合并请求设置默认压缩选项

有权限创建或编辑合并请求的用户可以为合并请求设置默认压缩选项。

先决条件:

  • 你的项目必须配置为允许或鼓励压缩操作。

操作步骤:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Code > Merge requests 并找到你的合并请求。
  3. 选择 Edit
  4. 选择或取消选择 Squash commits when merge request is accepted 复选框。
  5. 选择 Save changes

在合并请求中压缩提交

如果你的项目允许你为合并请求选择压缩选项,要在合并过程中压缩提交:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Code > Merge requests 并找到你的合并请求。
  3. 在合并请求小部件中,确保选中 Squash commits 复选框。如果项目的压缩选项设置为 Do not allowRequire,则不会显示此复选框。
  4. 可选。要修改压缩提交消息或合并提交消息(取决于你的项目配置),选择 Modify commit messages
  5. 当合并请求准备合并时,选择 Merge

为项目配置压缩选项

先决条件:

  • 你必须拥有此项目的 Maintainer 角色或更高权限。

要为项目中所有合并请求配置默认压缩行为:

  1. 在左侧边栏,选择 Search or go to 并找到你的项目。
  2. 选择 Settings > Merge requests
  3. Squash commits when merging 部分,选择你期望的行为:
    • Do not allow:从不执行压缩操作,且不显示该选项。
    • Allow:允许压缩操作,但默认为未选中。
    • Encourage:允许压缩操作并默认选中,但可以禁用。
    • Require:始终执行压缩操作。虽然合并请求会显示压缩选项,但用户无法更改它。
  4. 选择 Save changes

相关主题