2

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

例如:

  • 我有一个 commit abcd1234,它已合并到master分支中。
  • 这给了我一个带有哈希的合并提交a1b2c3d4
  • 我此时创建了一个名为release-1.0的标签

此时,我可以使用git tag --contains abcd1234OR git tag --contains a1b2c3d4。这两个命令都会列出标签release-1.0

现在:

  • 我从release-1.0标签创建了一个热修复分支
  • 我在带有哈希的主服务器上有一个新的合并提交xyz789
  • 我将这个提交挑选到热修复分支上
  • 我将此热修复分支标记为release-1.1并删除该分支

如何获取包含 commit 的所有标签的列表xyz789?在这种情况下,它应该显示此提交可用于:

  • 发布-1.1
4

1 回答 1

0

这里的问题是release-1.1 包含提交xyz789(这也不是有效的哈希 ID,但没关系:-))。Cherry-picking 创建一个新的、不同的提交,具有一个新的、不同的哈希 ID。

与其尝试跟踪哪些提交是哪些其他提交的副本——这是可能的;请参阅以下-x参数git cherry-pick- 最好将热修复提交作为一个分支应用,无论是否是临时的,它是在问题首次出现的提交之后立即创建的。然后可以将此提交合并到多个不同的分支。如果我永远不会在它们之间合并,请参阅在两个分支 A 和 B 之间的 git 中采摘樱桃的危险是什么?并点击 Raymond Chen 博客文章的链接。

于 2018-10-31T16:26:06.420 回答