通过git describe和git tag找出包含给定GIT提交的版本

时间:2015-02-05 02:19:40

标签: git

我已按照上一个post尝试找出哪个版本包含给定的git提交。

git tag --contains 8f873c1ff4ca034626093d03b254e7cb8bb782dd

它给出了一个从 v3.17到v3.19-rc7 的列表。

我还发现还有另一个命令可以做到这一点

git describe --tag 8f873c1ff4ca034626093d03b254e7cb8bb782dd

但它给了我一个不同的结果, v3.16-rc5-211-g8f873c1 。请注意,上一个结果 v3.17到v3.19-rc7 不包含任何v3.16.x版本。

实际上,我使用git checkout <tags>手动搜索,然后我发现给定的提交最初是在v3.16.2中引入的。

有人能解释一下这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

你问了两个不同的问题。

git describe --tag 8f873c1ff4ca034626093d03b254e7cb8bb782dd为您提供特定提交的说明。它从给定的提交开始,然后向后,直到它找到一个标记,并给出一个<tag>-<count>-g<commit_id>形式的答案,它告诉提交<commit_id>是{{1} } <count>之后提交。

<tag>要求 在此命令的输出中将比指定的提交更新。也就是说,此命令正在搜索与上一个命令相反的方向。

因此,既然您要问两个截然不同的问题,那么您将得到两个不同的答案。