【问题标题】:How to change the default target branch for merges in Gitlab如何在 Gitlab 中更改合并的默认目标分支
【发布时间】:2016-12-19 04:25:39
【问题描述】:

我们在许多组和项目中使用 Gitlab 8.10.1。许多项目恰好是其他项目的分支。 我们的问题是,每当有人打开一个项目的合并请求时,默认目标分支不是项目的默认分支,而是来自一个非常具体的其他项目。有没有办法以某种方式覆盖此设置? 为了清楚起见,我知道如何设置项目的默认分支并且这些设置似乎是正确的,但是 gitlab 在创建合并请求时似乎没有使用它们。 这个问题非常烦人,当人们没有注意并以完全不同的“主”作为目标时,会导致出现奇怪的情况。

【问题讨论】:

标签: git merge settings gitlab


【解决方案1】:

我们找到了这种行为的根源,这是由于项目之间的关系,因为一个项目是在 gitlab 中从另一个项目分叉的。删除源和分叉之间的关系时,合并的默认分支是项目本身的默认分支。 现在这是我们针对这种情况的解决方案,因为我们可以忍受移除源fork 关系的影响。

【讨论】:

  • 如果您能列出执行此操作的步骤会更有用。
【解决方案2】:

你需要master。然后项目设置---默认分支---保存更改

享受吧!

【讨论】:

  • 但要注意这会改变克隆时使用的默认分支
【解决方案3】:

默认 MR 目标取决于存储库是否为 GitLab fork

分叉

如果存储库是GitLab fork,则默认 MR 目标将是上游存储库的默认分支。这种关系可以通过项目设置页面上的“删除分叉关系”选项来删除,之后默认的 MR 目标将被确定为非分叉存储库的正常目标(如下所述)。

在撰写本文时,无法在不删除分叉关系的情况下覆盖默认 MR 目标,但已在 gitlab 问题 #14522 中请求了该功能。

非分叉

如果存储库没有分叉关系,则项目设置页面上的默认分支设置同时设置 (1) 默认 MR 目标和 (2) GitLab 服务器上 repo 的 HEAD 引用(确定分支克隆回购时已检查)。请注意,由于 bug/quirk in git, problems can occur 如果曾经是默认分支的分支后来从 GitLab 中删除。

在撰写本文时,无法独立于默认分支更改默认 MR 目标,但已在 gitlab 问题 #17909 中请求此功能。

【讨论】:

  • 好消息!终于添加了更改 GitLab 分叉的默认目标的功能!问题#14522 现已关闭:)
  • 谢谢@komidawi。不幸的是,这只允许更改默认目标项目,而不是默认目标分支,但我们已经完成了一半。希望他们能尽快实施 #17909。
【解决方案4】:

从 11.5.3 版开始,设置发生了一些变化。来自docs.gitlab.com

当您创建一个新项目时,GitLab 将 master 设置为您项目的默认分支。您可以在项目的 Settings > Repository 下选择另一个分支作为项目的默认设置。

【讨论】:

    【解决方案5】:

    关于分叉,GitLab 13.11(2021 年 4 月)带来了一个有趣的功能

    为分支中的合并请求设置默认目标项目

    在 fork 一个项目之后,使用合并请求为上游项目做出贡献是有益的。

    以前,GitLab 假设来自您的 fork 项目的合并请求将始终以上游项目为目标。
    这可能会造成不应该在上游合并代码的失误,或者用户需要在打开合并请求之前进行更改。

    GitLab 现在支持为在 fork 项目中创建的合并请求设置默认目标项目。
    这简化了贡献,并有助于避免用户和团队犯错误,这些用户和团队更常为其 fork 项目而不是上游项目做出贡献。

    参见DocumentationIssue

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 2021-10-25
      • 1970-01-01
      • 2020-12-20
      • 2019-06-30
      • 2020-05-01
      • 2022-12-04
      • 2020-02-02
      • 1970-01-01
      相关资源
      最近更新 更多