合并带有标签的分支-Gitlab

时间:2019-02-06 10:48:38

标签: git jenkins github gitlab git-merge

在我们的企业中,作为DevOps团队的一部分,我们没有特权在本地笔记本电脑上安装git并获取GitLab代码存储库。 Jenkins工具可以通过SSH访问GitLab存储库,但我们没有SSH可以访问jenkins(已安装Git)。我们可以通过诸如this之类的GitLab门户查看仓库,然后将Jenkins配置为从GitLab获取代码。

因此,我无法在笔记本电脑上运行诸如git log --all --decorate --oneline --graph之类的命令来了解合并方面。


在我们企业中的Gitlab门户的tags部分下,我看到一个条目,如下所示:

enter image description here


我知道标记是git commit哈希键(40个字符)的别名,但我需要澄清上面为标记名称(sprint12-tag)指定的条目分支(feature-branch-x)与分支(develop)的合并。

here所述,标签表示某个时间特定分支的版本。分支代表一个单独的开发线程,可以与其他开发工作在同一代码库上同时运行。

因此,我的理解是,已将标签sprint12-tag分配给feature-branch-x上的特定提交(不能是最新的提交),如下所示:

enter image description here


到目前为止,当我单击左上方的图标时,我会在GitLab主页中看到以下选项

enter image description here


问题:

0)如何在GitLab门户上查看此类图表(上方)?除非我们在本地笔记本电脑上运行git log --all --decorate --oneline --graph ...

1) 在任何分支(在本例中为sprint12-tag)上使用上述标记(feature-branch-x),可以说开发人员已经在命令下运行了吗?

$ git checkout develop
$ git merge sprint12-tag # ignoring the latest commit c5 on 'feature-branch-x'

$ #   or it can be `git merge e324567`

2) 我如何理解下面的条目?  如here所示...

enter image description here

2 个答案:

答案 0 :(得分:1)

在GitLab上,选择左侧边栏中的Repository > Graph以查看存储库的提交树。这将显示所有提交和合并,并带有分支名称和标记。

下图中的

[2.2]是一个标签。

我要说的是,通常,开发人员标记在合并某些工作后 手动提交。您从devmaster进行最终合并或PR,并得到合并提交。然后,将此合并提交标记为release2.0,并且永远不会从该提交中移出。我确信在某些组织中这也是自动化的。

  

我如何理解以下条目?

该图像显示了一个名为v11.7.5的标签。此标记已在GitLab上标记为 (不在git本身中)为“版本v11.7.5”。标签指向的提交为c5b5b18b。该提交的提交消息为Update VERSION to 11.7.5

示例:

https://code.sealedabstract.com/drewcrawford/CaveJohnson2/network/master

enter image description here

答案 1 :(得分:1)

  

标记表示特定分支在某个时刻的版本。

此报价具有误导性。标签和分支是两个独立的事物。您应该将标记视为特定提交时的静态标记。另一方面,分支是动态的,并且在您向分支添加提交时移动。有关分支和标签之间的区别的更多讨论,请访问我们的this Q&A姐妹网站上的Software Engineering