Dav*_*d P 28
默认MR目标取决于存储库是否为GitLab分支.
如果存储库是GitLab分支,则默认MR目标将是上游存储库的默认分支.可以通过"项目设置"页面上的"删除分支关系"选项删除此关系,之后将为非分支存储库确定默认MR目标(如下所述).
在编写本文时,如果不删除fork关系,则无法覆盖默认的MR目标,但在gitlab-ce问题#18550中已请求该功能.
如果存储库没有fork关系,则Project settings页面上的Default Branch设置同时设置(1)默认MR目标,以及(2)GitLab服务器上repo的HEAD引用(确定已检出的分支)当克隆回购时).需要注意的是,由于在git的错误/怪癖,可能会出现问题,如果这是一个分支,一旦默认分支稍后从GitLab删除.
在撰写本文时,无法独立于默认分支更改默认MR目标,但已在gitlab-ce问题#31546/#13949中请求此功能.
从版本 11.5.3 开始,设置发生了一些变化。来自docs.gitlab.com:
创建新项目时,GitLab 将 master 设置为项目的默认分支。您可以在项目的 Settings > Repository 下选择另一个分支作为项目的默认分支。
我们找到此行为的根源,这是由于项目之间的关系所致,因为一个项目是在另一个项目中从gitlab分叉的。删除源和fork之间的关系时,用于合并的默认分支是项目本身的默认分支。现在,这是我们针对这种情况的解决方案,因为我们可以忍受去除source--fork关系的影响。
关于分叉, GitLab 13.11(2021 年 4 月)有一个有趣的功能
\n\n\n为分叉中的合并请求设置默认目标项目
\n分叉项目后,使用合并请求为上游项目做出贡献可能是有益的。
\n以前,GitLab 假设来自分支项目的合并请求始终针对上游项目。
\n
\n这可能会导致错误,其中代码不应\xe2\x80\x99 合并到上游,或者用户需要在打开合并请求之前进行更改。GitLab 现在支持为在分支项目中创建的合并请求设置默认目标项目。
\n\n\n
\n这简化了贡献,并有助于避免那些更常为其分叉项目而不是上游项目做出贡献的用户和团队犯错误。
您还可以将其与GitLab 16.6(2023 年 11 月)结合起来:
\n\n\n最小分叉 - 仅包含默认分支
\n在以前版本的 GitLab 中,在分叉存储库时,分叉始终包含存储库内的所有分支。\n现在您可以仅使用默认分支创建分叉,从而降低复杂性和存储空间。\n如果不这样做,请创建最少的分叉\xe2\ x80\x99t 需要当前正在其他分支中进行的更改。
\n默认的分叉方法不会更改,并继续包含存储库中的所有分支。\n新选项显示哪个分支是默认分支,以便您准确了解新分叉中将包含哪个分支。
\n\n\n