git - merge 带有标签的分支 - Gitlab

标签 git jenkins github gitlab git-merge

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

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


在我们企业的Gitlab门户的tags版 block 下,看到一个入口,如下图:

enter image description here


我知道标签是 git commit 哈希键(40 个字符)的别名,但我需要澄清上面的条目,其中标签名称(sprint12- tag) 被指定用于分支(feature-branch-x)到分支(develop)的 merge 。

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

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

enter image description here


截至目前,当我点击左上角的图标时,我在 GitLab 主页中看到以下选项

enter image description here


问题:

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 所示...

enter image description 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/

相关文章:

github - 在 GitHub Actions 中使用 GitHub CLI 访问另一个存储库

git - 如何阻止 Git 尝试推送不存在的文件?

android - Jenkins 和运行 AndroidJUnitRunner 仪器测试

python - 将我的 Django 项目上传到 GitHub 是否安全?

linux - 如何在 Windows 上为导入的 Laravel 项目重新配置 GIT 并部署到 Linux 服务器

git - 在 Windows 上将 10 年老项目从 svn 迁移到 git 的建议

amazon-web-services - 无法查看 SQS 资源中的消息

java - 在多个环境中执行 JUnit 测试的配置

windows - Git 配置值冲突

git - 警告 : Permanently added the RSA host key for IP address # to the list of known hosts