git - 如何更改 Gitlab 中 merge 的默认目标分支

标签 git merge settings gitlab

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

最佳答案

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

fork

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

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

非 fork

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

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

关于git - 如何更改 Gitlab 中 merge 的默认目标分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913163/

相关文章:

git - 如何使用 SourceTree 正确压缩提交?

git - 如果 merge 两个具有相同提交的分支会发生什么?

mercurial - 将不同的存储库 merge 为一个

merge - 删除TortoiseHG和Mercurial中的修订

.net - app.config 文件和 XYZ.settings 文件有什么区别?

Git rebase 冲突没有 merge ?

git undo 本地分支删除

linux - 如何使 Git-bash 命令行从主目录启动?

c# - 当构造函数注入(inject)的参数在配置和运行时已知时,从 AutoFac 获取类实例的最佳方法是什么

C# 设置文件 : Why do I have to use Settings. 默认值?