Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • GitCode
  • 帮助文档
  • Wiki
    • Docs
    • User
    • Project
    • Merge request
  • squash

帮
帮助文档
  • 项目概览

GitCode / 帮助文档

通知 1562
Star 123
Fork 139
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 163
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 23
  • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • Wiki 89
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
帮
帮助文档
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 163
    • Issue 163
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 23
    • 合并请求 23
  • Pages
  • DevOps
    • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 89
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 流水线任务
  • 提交
  • Issue看板
You need to sign in or sign up before continuing.

squash

最后修改来自于BaiXuePrincess 11月 19, 2021
页面历史

Squash合并

使用 squash 合并,您可以将所有合并请求的提交合并为一个并保留干净的历史记录。

概览

通过 squash,您可以在接受合并请求时整理分支的提交历史记录,它将合并请求中的所有更改作为单个提交,然后使用为项目设置的合并方法合并该提交。

换句话说,squash 合并后将会变成一长串提交:

List of commits from a merge request

合并为单个提交:

A squashed commit followed by a merge commit

压缩的提交的提交消息将是:

  • 取自合并中的第一条多行提交消息
  • 如果找不到多行提交消息,则合并请求的标题

注意: 仅在至少 2 次提交时,此选项才生效。由于没有什么可压缩的,因此如果只有 1 次提交,则提交消息不会更改。

可以在合并合并请求之前对其进行自定义。

注意: 在此示例中,压缩的提交之后是合并提交,因为此示例代码仓库的合并方法使用了合并提交。

Squash 也适用于快进合并策略,有关更多详细信息,请参见压缩和快进合并 。

示例

在功能分支上工作时,有时您想提交当前进度,但实际上并不关心提交消息。 这些"进行中的提交"不一定包含重要的信息,因此,您不想将其包含在目标分支中。

使用 squash 合并,当准备好要合并的合并请求时,您要做的就是在按下合并之前将 Squash 启用,以将合并请求中的提交加入到单个提交中。

这样,您的基本分支的历史记录将保留有意义的提交消息,并且:

  • 在有需要的情况下, Revert更为简单
  • 合并的分支将保留完整的提交历史记录

合并时启用 Squash

可以创建或编辑合并请求的任何人都可以选择将其压缩在合并请求表单上:

Squash commits checkbox on edit form

然后可以在接受合并请求时覆盖它:

Squash commits checkbox on accept merge request form

Squash 提交的元数据

Squash 的提交具有以下元数据:

  • 消息: Squash 提交消息或自定义消息
  • 作者:合并请求的作者
  • 提交者:发起 Squash 的用户

Squash 和快进合并

当项目启用了快进合并设置时 ,合并请求必须能够不 Squash 而进行快速转发以进行 Squash,这是因为 Squash 仅在接受合并请求时可用,因此即使 Squash 本身可以被认为等同于重新 Rebase,也可能需要在 Squash 之前对合并请求进行重新基准化。

克隆仓库

快速访问

  • 首页
  • 组织
    • 子组织
    • 申请入驻
  • 项目
    • 徽章
    • 批量编辑
    • 新建项目
    • 描述模板
    • 文件查找
    • 合并请求
      • 允许协作
      • 创建合并请求
      • Cherry-pick
      • 快进合并
      • 解决冲突
      • 还原
      • 评审及管理
      • Squash合并
      • 合并请求版本
      • 草稿
    • 项目成员
    • 导入
      • Github
      • URL
    • Releases
    • 代码仓库
      • 分支
      • Git属性
      • Blame
      • 文件历史记录
      • 仓库镜像
      • 保护分支
      • 保护Tag
      • Git LFS
      • 减少仓库大小
      • GPG签名提交
      • 文件编辑
      • WebIDE
    • 项目设置
    • 与群组共享项目
    • wiki
    • 代码片
    • Pages
      • Hugo
      • Mdbook
      • html
  • Issues
    • 机密Issue
    • 关联Issue
    • 截止日期
    • 看板
    • 操作Issue
    • 标签
    • 管理Issue
    • 里程碑
    • Issue排序
  • API
    • Runners Api
  • CI / CD
    • Pipelines
      • 流水线计划
      • 设置
    • 变量
    • Runners
    • .codechina-ci.yml
      • .codechina-ci.yml 参考
      • 语法验证
  • 用户
    • 举报用户
    • 用户账号
      • 登录日志
      • 用户权限
      • 个人访问令牌
      • 个人偏好
    • Notebook
    • 探讨
    • SSH密钥
    • 快捷键
    • Markdown
    • 电子邮件通知
    • 快速操作
      • 自动填充
    • 预留命名空间
    • 搜索
    • 时间跟踪
    • 待办事项
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7