有没有办法在git中显示最后N个标签?
我对模式不感兴趣,因为这可能会改变.例如,假设我有这些标签,我想得到最后3个:
v1.0.0
v1.0.1
v2.0.0
v2.1.0
v3.0.0
Run Code Online (Sandbox Code Playgroud)
基于Pro Git似乎无法实现这一点.或者我错过了什么?
这可以通过git tag --sortGit v 2.0.0中引入的选项来完成.
注意:我使用减号-来获得反向排序顺序(默认为最旧到最新).
替换<number>为实际的自然数.
git tag --sort=-version:refname | head -n <number>
Run Code Online (Sandbox Code Playgroud)
来自man head:
Run Code Online (Sandbox Code Playgroud)head [-n count | -c bytes] [file ...]此过滤器显示每个指定文件的第一个计数行或字节,如果未指定文件,则显示标准输入.如果省略count,则默认为10.
git tag --sort=-version:refname | Select -First <number>
Run Code Online (Sandbox Code Playgroud)
(Select在serverfault上找到命令信息)
Run Code Online (Sandbox Code Playgroud)--sort=<type>按特定顺序排序.支持的类型是"refname"(词典顺序),"version:refname"或"v:refname"(标记名称被视为版本)."version:refname"排序顺序也可能受"versionsort.prereleaseSuffix"配置变量的影响.前缀" - "以反转排序顺序.如果未指定此选项,则排序顺序默认为tag.sort变量(如果存在)配置的值,否则为字典顺序.
小智 6
没有一个命令可以做到这一点。为此,您必须使用describe和命令的组合。rev-list
git describe --tags $(git rev-list --tags --max-count=3)
Run Code Online (Sandbox Code Playgroud)
从这里得到答案:https ://stackoverflow.com/a/7979255/2336787