当我有一个包含轻量级标签和带注释标签的存储库时,git-for-each-ref
似乎只对其中一组进行排序。我想修改我的通话for-each-ref
获得对所有标签进行排序并将它们混合在输出中的输出。
例如:
bash-3.2$ git tag |
> xargs -I T git log -n 1 --format='%at T' T |
> sort -rn |
> awk '{print $2}'
lwt3
at3
lwt2
at2
lwt1
at1
bash-3.2$ git for-each-ref --sort=-authordate refs/tags | awk '{print $3}'
refs/tags/lwt3
refs/tags/lwt2
refs/tags/lwt1
refs/tags/at1
refs/tags/at2
refs/tags/at3
bash-3.2$ git --version
git version 1.6.6.80.g2df32
Using -committerdate
or -taggerdate
生成类似的输出,并且标签永远不会正确排序。使用时-*authordate
, or -*committerdate
,已排序的组被反转,而-*taggerdate
什么都不排序。
还有其他我不知道的选择吗?这是正确的行为吗?我可以明白为什么 committerdate 或 taggerdate 只会分别对提交或标签进行排序,但似乎authordate 应该做我想要的事情。
好的,继续验证我在评论中所说的话:
只有带注释的标签才会在存储库中创建一个选项卡对象,其中包含您要在此处排序的 taggerdate 字段等内容。您的标签很可能是轻量级标签,因此不包含此类信息。
对于另一半,committerdate 和authordate 似乎在标签上对我来说可以正常工作 - 它们只是对标签指向的提交进行排序,因为没有有关标签本身何时创建的信息。 (当且仅当你在前面放一个 - 时,它们才会颠倒排序)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)