有一些标签:
first
second
third
fourth
我需要在“第二”(第三)之前获取标签。
git describe --abbrev=0 second^
或者在最后两个标签之间
git log $(git describe --abbrev=0 --tags $(git describe --abbrev=0)^)...$(git describe --abbrev=0)
您希望在当前标签之后获得下一个标签的任何排序的替代解决方案:
git tag --sort=-creatordate | grep -A 1 second | tail -n 1
git tag --sort=-creatordate
按创建者日期从最新到最旧打印所有标签:“第一第二第三第四”。明智地选择排序选项。grep -A 1 second
仅过滤"second"和后面的一行,即"third"。tail -n 1
从"second third"打印最后一行,我们终于得到了"third"。我发现这个问题的公认答案只能从您所在分支的提交历史记录中找到可访问的标签(这对于许多用例来说都很好)。
无论当前的分支历史如何,我都需要事先提交,所以这个解决方案更全面地工作。
git for-each-ref --sort=-creatordate --format '%(refname:short)' refs/tags | sed -n '/second/{n;p;}'