在GitLab中从问题创建分支

58

我刚开始使用GitLab,并创建了一组问题,以便为我的应用程序保持概述。我想知道是否可以从这些问题中创建一个分支,使得该分支和问题相互关联,类似于atlassian的jira和Stash?

4个回答

81
如果你使用名称为<issue-number>-issue-description 的分支并将其推送到GitLab上,它将自动与该问题相关联。例如,如果你有一个ID为654的问题,并创建了一个名为654-some-feature的分支并将其推送到GitLab上,则它将与问题654相关联。
GitLab甚至会询问你是否要创建合并请求,并将Closes#654自动添加到合并请求描述中,这将在合并请求被接受时关闭issue 654
此外,如果你访问GitLab上的特定问题页面,你应该会看到一个New Branch按钮,它将自动创建一个形式为<issue-number>-issue-description的分支。

4
我原本希望看到一个“新分支”按钮,但它可能不存在或我找不到它。你知道它在哪里吗? - JonasN89
没关系,我找到了创建新分支的方法。看起来Gitlab为我创建了一个分支来解决第一个问题,而我自己并没有意识到。 - JonasN89
3
关于缺失的“创建分支”按钮,请参见@Robert Echlin的回答。 - florisla
2
@JonasN89 你应该考虑将采纳答案更改为Robert Echlin的答案,因为那正好回答了你的问题。 - Zoltán
2
一个观察:只有在问题不是机密的情况下,“为问题创建拉取请求”按钮才可见。 - Michael Kargl
在分支地址涉及多个问题的情况下,一个分支可以链接到多个问题吗? - BrunoElo

51

在问题界面上,您会看到一个绿色按钮,标有“创建合并请求”,其右侧有一个向下箭头。

那不是一个按钮,而是一个按钮的下拉菜单列表。

  • 点击向下箭头
  • 选择“创建分支”
  • 点击“创建分支”
  • 从问题编号和分支标题创建一个分支
    • 例如,我的问题编号#2,标题为“使用无存储库进行仓库搜索”的分支将命名为:
    • 2-test-reposearch-with-no-repos
    • 注意它将被转换为全小写字母

4
那个按钮对我来说没有显示出来。这与我的分支结构(Git Flow)有关还是因为它是另一个项目的分支(fork)? - molerat
5
GitLab是否能够识别其他名称格式?举个例子,是否可以默认创建名为feature/2的分支,而不是2-the-title?这些分支是否能够在GitLab中链接起来?在我看来这是必要的功能。 - Roger Campanera
@molerat 我也遇到了这个问题,在当前项目中也没有显示。在一个项目中,我有两个按钮:显示活动和创建合并请求。而在另一个项目中,我只有显示活动按钮。 - ThinkDigital
仓库不能为空,并且在项目设置中应启用“仓库”功能(设置>常规>可见性、项目功能、权限)。已在Gitlab 13.8.7 / Docker上进行测试。 - Hendrik Pilz
1
请查看此问题,了解关于合并请求按钮未显示在问题界面上的信息。 - Jubilsoft-Scott
显示剩余3条评论

2
TLDR: 在合并请求中添加 #2 到标题、评论框或提交信息中,即可将问题链接到分支和提交。您可以从一开始就进行 MR 以进行链接。
看起来,Gitlab 的唯一选择是按照以下格式命名您的分支:<issue-number-some-branch>,例如 2-bad-ai,这将自动将分支链接到该问题。
然而,我将我的分支组织成这样的 .git/ref/heads 文件夹结构:feature/2-<some-branch>,然后当您在合并请求中添加 #2 到标题、评论框或提交信息中时,即可将问题链接到分支和提交。您可以从一开始就进行 MR 以进行链接。
$ ls .git/refs/heads/; ls .git/refs/remotes/upstream/
2-bad-ai  dev  feature/  hotfix/  master  release/
2-bad-ai  dev  feature/  hotfix/  master  release/ 


我更愿意在上面的输出中有feature/2-bad-ai...
从我在Github上了解到的情况来看,您可以将pull-request链接到feature/2-<some-branch>,但不像GitLab那样自动链接2-<some-branch>

1

2017年:

如果您创建一个名称为-issue-description的分支并将该分支推送到GitLab,则它将自动链接到该问题。

现在,这是可定制的,使用GitLab 15.6(2022年11月):

配置从问题创建的分支的默认名称

定义一个自定义模板来命名从问题创建的分支。之前的设置 {issue ID}-{issue-title-hyphenated} 仍然是默认值。

要为您的项目定义自定义模板,请转到存储库设置>分支默认值

https://about.gitlab.com/images/15_6/configure_default_names_for_branches_created_from_issues.png -- Configure default names for branches created from issues

请参阅 文档问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接