【发布时间】:2019-04-04 20:08:26
【问题描述】:
我正在尝试找出如何列出包含给定提交的所有标签,包括那些被精心挑选的标签。
例如:
- 我有一个提交
abcd1234,已合并到master分支中。 - 这给了我一个 合并提交 哈希
a1b2c3d4 - 此时我创建了一个名为 release-1.0 的标签
此时,我可以使用git tag --contains abcd1234 或git tag --contains a1b2c3d4。这两个命令都会列出标签 release-1.0
现在:
- 我从 release-1.0 标签创建了一个热修复分支
- 我在主服务器上有一个新的合并提交,哈希值为
xyz789 - 我将这个提交精心挑选到 hot-fix 分支
- 我将此 hot-fix 分支标记为 release-1.1 并删除该分支
如何获取包含提交xyz789 的所有标签的列表?在这种情况下,它应该显示此提交在以下位置可用:
- 发布-1.1
【问题讨论】:
-
你到底为什么要挑选一个提交到你要删除的分支上?然后是合并提交(没有更改)?也许描述你试图通过最后两个步骤实现的目标,当你在 master 中合并 hot-fix 并用 1.1 标签标记你的 xyz789 提交之后就可以完成。
-
“热修复”分支一旦发布就不需要保留。另外,
release-2.0出来的时候会不一样。选择cherry-pick-merge-commit 的原因是因为工作流涉及在将更改合并到master 时创建合并提交。因此,当某些“合并请求”需要作为热修复发布时,合并提交会被挑选到热修复分支中。
标签: git tags git-commit git-cherry