在我们的企业中,作为 DevOps 团队的一部分,我们没有权限在本地笔记本电脑上安装 git
并获取 GitLab 代码仓库。 Jenkins 工具可以通过 ssh 访问 GitLab 存储库,但我们没有通过 ssh 访问 jenkins(已安装 Git)。我们可以通过 GitLab 门户(例如 this)查看存储库,然后配置 Jenkins 从 GitLab 获取代码。
因此,我无法在笔记本电脑上运行 git log --all --decorate --oneline --graph
之类的命令来了解 merge 方面。
在我们企业的Gitlab门户的tags版 block 下,看到一个入口,如下图:
我知道标签是 git commit
哈希键(40 个字符)的别名,但我需要澄清上面的条目,其中标签名称(sprint12- tag
) 被指定用于分支(feature-branch-x
)到分支(develop
)的 merge 。
如 here 所述,标签代表某个时刻特定分支的一个版本。分支代表一个单独的开发线程,可以与同一代码库上的其他开发工作同时运行。
因此,我的理解是,标签 sprint12-tag
已分配给 feature-branch-x
上的特定提交(不能是最新提交) ,如下图:
截至目前,当我点击左上角的图标时,我在 GitLab 主页中看到以下选项
问题:
0) 如何在 GitLab 门户网站上查看此类图表(上图)?除非我们在本地笔记本电脑上运行 git log --all --decorate --oneline --graph
...
1)
在任何分支(在本例中为 feature-branch-x
)上使用上述标签(sprint12-tag
),我可以说,开发人员已经在命令下运行了吗?
$ 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 所示...
最佳答案
A tag represents a version of a particular branch at a moment in time.
这句话具有误导性。标签和分支是两个独立的东西。您应该将标记视为特定提交时的静态标记。另一方面,分支是动态的,并且会随着您向分支添加提交而移动。有关分支和标签之间差异的更多讨论,请查看 this Q&A在我们的 Software Engineering姊妹网站。
关于git - merge 带有标签的分支 - Gitlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551811/