极狐GitLab 正式推出面向 GitLab 老旧版本(12.x、13.x、14.x、15.x 等)免费用户的专业升级服务,点击查看详情

返回列表 发布新帖

如何创建合并请求?

21 0
发表于 4 天前 | 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

创建合并请求 (BASIC ALL)

GitLab 提供了多种不同的方式来创建合并请求,包括通过 使用 Git 命令

NOTE: 极狐GitLab 强制执行 分支命名规则 以防止出现问题,并提供 分支命名模式 来简化合并请求的创建。

从合并请求列表创建

你可以从合并请求列表中创建一个合并请求。

  1. 在左侧边栏,选择 搜索或前往 并找到你的项目。
  2. 选择 代码 > 合并请求
  3. 在右上角,选择 新建合并请求
  4. 选择源分支和目标分支,然后选择 比较分支并继续
  5. 填写 新建合并请求 页面上的字段,然后选择 创建合并请求

每个分支只能与一个打开的合并请求关联。如果该分支已经存在合并请求,将显示指向现有合并请求的链接。

从议题创建

如果您的开发工作流要求每个合并请求都有一个议题,您可以直接从议题创建分支,以加速这一过程。新的分支,稍后它的合并请求,将被标记为与该议题相关。合并请求合并后,议题会自动关闭,除非禁用自动关闭议题

:Tabs

::TabTitle 合并请求和分支

要同时创建分支和合并请求:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 计划 > 议题,然后找到您的议题。
  3. 转到议题描述的底部。
  4. 选择 创建合并请求 > 创建合并请求和分支
  5. 在对话框中,查看建议的分支名称。该名称基于您项目的分支名称模板
  6. 可选:如果分支名称已被占用,或者您需要一个不同的分支名称,您可以重命名它。
  7. 选择源分支或标签。
  8. 选择 创建合并请求

:::TabTitle 仅创建分支

仅从议题创建分支:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 计划 > 议题,然后找到您的议题。
  3. 转到议题描述的底部。
  4. 选择 创建合并请求 > 创建分支
  5. 在对话框中,查看建议的分支名称。该名称基于您项目的分支名称模板。如果分支名称已被占用,或者您需要一个不同的名称,可以重命名它。
  6. 选择源分支或标签。
  7. 选择 创建分支

::EndTabs

如果您的 Git 仓库为空,GitLab 将会:

  • 创建一个默认分支。
  • 提交一个空的 README.md 文件到该分支。
  • 创建并将您重定向到一个基于议题标题的新分支。
  • 如果您的项目配置了部署服务,例如 Kubernetes,GitLab 会提示您通过帮助创建 .gitlab-ci.yml 文件来设置自动部署

如果您创建的分支名称以议题号为前缀,GitLab 会将该议题和合并请求交叉链接,并将议题关闭模式添加到合并请求的描述中。在大多数情况下,这看起来像 Closes #ID,其中 ID 是议题的 ID。如果您的项目配置了关闭模式,则当合并请求被合并时,议题会自动关闭。

从任务创建

  • 引入于极狐GitLab 17.8。

如果您的团队将议题分解为任务,您可以直接从任务创建分支,以加速这一过程。新的分支,稍后它的合并请求,将被标记为与该任务相关。合并请求合并后,任务会自动关闭,除非禁用自动关闭议题

前提条件:

  • 您必须至少拥有该任务所在项目的开发者角色。
::Tabs

::TabTitle 合并请求和分支

要同时创建分支和合并请求:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 计划 > 议题
  3. 在议题列表中,找到您的任务。
  4. 转到任务描述的底部。
  5. 选择 创建合并请求
  6. 在对话框中,查看建议的分支名称。该名称基于您项目的分支名称模板
  7. 可选:如果分支名称已被占用,或者您需要一个不同的分支名称,可以重命名它。
  8. 选择源分支或标签。
  9. 选择 创建合并请求

:::TabTitle 仅创建分支

仅从任务创建分支:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 计划 > 议题
  3. 在议题列表中,找到您的任务。
  4. 转到任务描述的底部。
  5. 选择 创建合并请求 > 创建分支
  6. 在对话框中,查看建议的分支名称。该名称基于您项目的分支名称模板
  7. 可选:如果分支名称已被占用,或者您需要一个不同的分支名称,可以重命名它。
  8. 选择源分支或标签。
  9. 选择 创建分支

::EndTabs

如果您的 Git 仓库为空,GitLab 将会:

  • 创建一个默认分支。
  • 提交一个空的 README.md 文件到该分支。
  • 创建并将您重定向到一个基于任务标题的新分支。
  • 如果您的项目配置了部署服务,例如 Kubernetes,GitLab 会提示您通过帮助创建 .gitlab-ci.yml 文件来设置自动部署

如果您创建的分支名称以任务号为前缀,GitLab 会将该任务和合并请求交叉链接,并将关闭模式添加到合并请求的描述中。在大多数情况下,这看起来像 Closes #ID,其中 ID 是任务的 ID。如果您的项目配置了关闭模式,则当合并请求被合并时,任务会自动关闭。

当您添加、编辑或上传文件时

您可以在向仓库添加、编辑或上传文件时创建合并请求。

  1. 添加、编辑或上传文件到仓库。
  2. 提交信息 中,输入提交的原因。
  3. 选择 目标分支,或者通过输入分支名称来创建新分支。
  4. 选择 使用这些更改创建新的合并请求 复选框或切换按钮。仅当目标分支与源分支不同时,或源分支是受保护的时,此复选框或切换按钮才会显示。
  5. 选择 上传文件
  6. 填写字段并选择 创建合并请求

当您创建分支时

您可以在创建分支时创建合并请求。

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 代码 > 分支
  3. 输入分支名称并选择 新建分支
  4. 在文件列表上方,选择 创建合并请求。会创建一个合并请求,默认分支为目标分支。
  5. 填写字段并选择 创建合并请求

当您在一个 Fork 中工作时

您可以从您的 Fork 创建合并请求,以贡献到主项目。

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的 Fork。

  2. 选择 代码 > 合并请求,并选择 新建合并请求

  3. 对于 源分支,选择您 Fork 中包含更改的分支。

  4. 对于 目标分支

    1. 选择目标项目。(确保选择上游项目,而不是您的 Fork。)
    2. 从上游仓库中选择一个分支。

    NOTE: 如果您经常向上游项目贡献更改,建议为您的 Fork 设置一个默认目标项目

  5. 选择 比较分支并继续

  6. 选择 创建合并请求。合并请求将创建在目标项目中,而不是您的 Fork 中。

工作合并后,如果您不打算再做更多贡献,可以解除 Fork 与上游项目的关联

更多信息,请参见分支工作流文档

设置默认目标项目

默认情况下,从 Fork 创建的合并请求将目标设置为上游项目,而不是 Fork 的项目。

您可以将您的 Fork 项目配置为默认目标,而不是上游项目。

前提条件:

  • 您在一个 Fork 中工作。
  • 您必须至少拥有开发者角色,或者被允许在项目中创建合并请求。
  • 上游项目允许创建合并请求。
  • Fork 的可见性设置必须与上游仓库匹配,或者不严格于上游仓库。例如:如果您的 Fork 是私有的,而上游是公开的,那么此设置不会显示。

操作步骤:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 设置 > 合并请求
  3. 目标项目 部分,选择您希望用于默认目标项目的选项。
  4. 选择 保存更改

通过发送电子邮件

您可以通过发送电子邮件到极狐GitLab 来创建合并请求。合并请求的目标分支是项目的默认分支。

前提条件:

  • 合并请求必须针对当前项目,而不是上游项目。
  • 必须由极狐GitLab 管理员配置 传入邮件
  • 必须由极狐GitLab 管理员配置 电子邮件回复
  • 您必须至少拥有开发者角色,或者被允许在项目中创建合并请求。

通过发送电子邮件创建合并请求的步骤:

  1. 在左侧边栏中,选择 搜索或前往,然后找到您的项目。
  2. 选择 代码 > 合并请求
  3. 如果项目包含任何合并请求,选择 通过电子邮件向该项目发送新合并请求
  4. 在对话框中,复制显示的电子邮件地址。请保密此地址。任何拥有该地址的人都可以像您一样创建问题或合并请求。
  5. 打开电子邮件并编写包含以下信息的邮件:
    • 收件人 行是您复制的电子邮件地址。
    • 主题 是源分支名称。
    • 邮件正文是合并请求描述。
  6. 要添加提交,请将 .patch 文件附加到邮件中。
  7. 发送电子邮件。

合并请求已创建。

通过电子邮件创建合并请求时添加附件

通过将补丁作为附件添加到电子邮件中,可以将提交添加到合并请求。

  • 补丁的总大小必须为 2 MB 或更小。
  • 要被视为补丁,附件的文件名必须以 .patch 结尾。
  • 补丁会按名称的顺序处理。
  • 如果主题中的源分支不存在,则会从仓库的 HEAD 或默认目标分支创建它。 要手动更改目标分支,请使用 /target_branch 快速操作
  • 如果源分支已存在,则补丁会应用到该分支之上。

故障排除

无法在问题上创建合并请求的选项

如果以下情况之一发生,问题上将不显示 创建合并请求 选项:

  • 已经存在相同名称的分支。
  • 已经存在针对该分支的合并请求。
  • 您的项目存在活动的 Fork 关系。
  • 您的项目是私有的,且问题是机密的。

要使此按钮显示,一个可能的解决方法是删除项目的 Fork 关系。删除后,无法恢复 Fork 关系。此项目将无法再从源项目或其他 Fork 接收或发送合并请求。

无法处理电子邮件消息

当您发送电子邮件以创建合并请求,并尝试将目标设为上游项目时,GitLab 会响应以下错误:

抱歉,您的电子邮件消息无法处理。

您不允许执行此操作。如果您认为这是一个错误,请联系工作人员。
回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2025 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表