如何列出包含经过精心挑选的提交的git标签

时间:2018-10-31 15:35:04

标签: git tags git-commit git-cherry

我正在尝试找出如何列出包含给定提交的所有标签,包括那些精心挑选的标签。

例如:

  • 我有一个提交abcd1234,已经合并到master分支中。
  • 这给了我合并提交,其中哈希为a1b2c3d4
  • 我现在创建一个名为 release-1.0
  • 的标签

这时,我可以使用git tag --contains abcd1234git tag --contains a1b2c3d4。这两个命令都将列出标记 release-1.0

现在:

  • 我从 release-1.0 标签创建了一个热修复分支
  • 我在主数据库上有一个新的 merge commit ,其哈希为xyz789
  • 我将这次提交精选到 hot-fix 分支
  • 我将此 hot-fix 分支标记为 release-1.1 并删除该分支

如何获取包含提交xyz789的所有标签的列表?在这种情况下,它应表明此提交在以下位置可用:

  • 版本1.1

1 个答案:

答案 0 :(得分:0)

这里的问题是release-1.1 不包含提交xyz789(这也不是有效的哈希ID,但不要在意:-))。 Cherry-picking使用不同的新哈希ID创建新的不同提交。

这是可能的,而不是尝试跟踪哪些提交是其他提交的副本。请参见-x的{​​{1}}参数-最好将热修复提交作为分支(无论是否是临时分支)应用,该分支是在首次出现问题的提交之后立即创建的。然后可以将该提交合并到多个不同的分支。请参见What are the perils of cherry picking in git between two branches A and B if I am never going to merge between them?,并点击指向Raymond Chen博客文章的链接。