2017-08-01 70 views
1

我正试图通过标记过滤git日志。根据documentation,我尝试使用--tags="3.5.0",但它不起作用,因为它会在标签之前和之后返回所有提交。如何通过标记过滤git日志?

我想如何使用它?

+0

“git tag”显示什么? – 2017-08-01 13:41:34

+0

@ Philj0“3.5.0”包含在结果中,以及所有其他 – rj93

回答

2

过滤器可能包括任何东西。例如,git log 3.5.0会为您提供所有提交至该标签的提交。 git log 3.4.0..3.5.0将输出这些标签之间的所有提交。如果您只想查看标签提交,请使用git show 3.5.0。如果你必须看到所有的标签和他们各自的提交,像git tag -l | xargs git show是可想而知的。

此外,不要忘记添加--decorategit log实际上看到与提交相关的标签。

+0

因此,我试图通过部分标记来定位提交,因为CI/CD创建了一个标记,其格式为“project-name-版本“,并且在给定的提交ID之后。所以我的实际命令是'git log .. HEAD tags =“project-name”。我从文档中了解到“如果给出,将标签限制为与给定shell glob相匹配的标签”,它应该只匹配那些匹配的模式,但它会返回所有内容。 – rj93

+0

@ rj93老实说,'--tags'也不适用于我(也许有人可以启发我们)。根据你的shell,你可以直接搜索'git tag -l'标签列表,例如'git tag -l | grep'project''或'git tag -l | grep'project'| xargs git展示'。 – SVSchmidt