如何在Gitlab中更改合并的默认目标分支

时间:2016-08-12 08:16:27

标签: git merge settings gitlab

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

5 个答案:

答案 0 :(得分:21)

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

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

在撰写本文时,如果不删除fork关系,则无法覆盖默认的MR目标,但gitlab-ce issue #18550中已请求该功能。

非叉

如果存储库没有fork关系,则Project settings页面上的Default Branch设置同时设置(1)默认MR目标,以及(2)GitLab服务器上repo的HEAD引用(确定分支)当克隆回购时检查出来)。请注意,由于bug/quirk in gitproblems can occur,如果曾经是默认分支的分支稍后会从GitLab中删除。

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

答案 1 :(得分:7)

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

享受!

答案 2 :(得分:4)

我们找到了这种行为的来源,这是由于项目之间的关系,因为一个项目是在另一个项目的gitlab中分叉的。删除源和fork之间的关系时,合并的默认分支是项目本身的默认分支。 现在这是我们针对这种情况的解决方案,因为我们可以理解删除源< - > fork关系的含义。

答案 3 :(得分:1)

从11.5.3版开始,设置有所更改。来自docs.gitlab.com

  

创建新项目时,GitLab会将master设置为项目的默认分支。您可以在项目的“设置”>“存储库”下选择另一个分支作为项目的默认值。

答案 4 :(得分:0)

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

<块引用>

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

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

以前,GitLab 假设来自您的 fork 项目的合并请求始终针对上游项目。
这可能会导致不应在上游合并代码的错误步骤,或者用户需要在打开合并请求之前进行更改。

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

https://about.gitlab.com/images/13_11/code-review-default-project-target-mr.png -- Set default target project for merge requests in forks

参见 DocumentationIssue