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

问题描述 投票:0回答:5

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

git merge settings gitlab
5个回答
42
投票

默认 MR 目标取决于存储库是否是 GitLab 分支

叉子

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

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

非分叉

如果存储库没有分叉关系,则项目设置页面上的默认分支设置会设置 (1) 默认 MR 目标,以及 (2) GitLab 服务器上存储库的 HEAD 引用(它确定检查的分支)克隆存储库时会出现)。请注意,由于 git 中的 bug/怪癖,如果稍后从 GitLab 中删除曾经是默认分支的分支,可能会出现问题。

在撰写本文时,无法独立于默认分支更改默认 MR 目标,但 gitlab 问题

#17909 中已请求此功能。


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

享受!


7
投票
从版本 11.5.3 开始,设置发生了一些变化。来自

docs.gitlab.com

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


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

叉关系的影响。<->


5
投票
关于分叉,

GitLab 13.11(2021 年 4 月) 有一个有趣的功能

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

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

以前,GitLab 假设来自您的分叉项目的合并请求将始终针对上游项目。

这可能会造成错误,即不应将代码合并到上游,或者用户需要在打开合并请求之前进行更改。

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

请参阅

文档问题


您还可以将其与

GitLab 16.6(2023 年 11 月)结合起来:

最小分叉 - 仅包含默认分支

在以前版本的 GitLab 中,在分叉存储库时,分叉始终包含存储库中的所有分支。 现在,您可以仅使用默认分支创建分叉,从而降低复杂性和存储空间。 如果您不需要其他分支当前正在进行的更改,请创建最少的分支。

默认的分叉方法不会改变,并继续包含存储库中的所有分支。 新选项显示哪个分支是默认分支,以便您确切地知道哪个分支将包含在新分支中。

请参阅

文档问题

© www.soinside.com 2019 - 2024. All rights reserved.