代码之家  ›  专栏  ›  技术社区  ›  Heavy

如何列出带有原始提交日期的git标记

git
  •  2
  • Heavy  · 技术社区  · 7 年前

    我想列出git标记以及它们所指向的提交日期(而不是创建标记的日期)。我还想按原始提交日期的相反顺序对它们进行排序。

    例如,我在上创建了3个提交 Aug 1 , Aug 3 Aug 5 . 以后 我已经创建了3个指向这些提交的标记。所有标记都创建于 Aug 10

    我需要以下内容(按提交日期的相反顺序排序):

    tag-1.2     Aug 5       
    tag-1.1     Aug 3       
    tag-1.0     Aug 1       
    

    committerdate ,但它似乎为空,并且提交未排序:

    git for-each-ref --sort=-committerdate --format "%(tag) %(committerdate)" refs/tags
    
    tag-1.0     
    tag-1.1     
    tag-1.2     
    

    taggerdate 可以,但它是创建标记的日期,而不是原始提交的日期:

    git for-each-ref --sort=-taggerdate --format "%(tag) %(taggerdate)" refs/tags
    
    tag-1.2     Aug 10      
    tag-1.1     Aug 10      
    tag-1.0     Aug 10      
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   VonC    7 年前

    那不是 example mentioned in git for-each-ref ,使用' * “符号?

    * )ref指向一个标记对象, 使用标记对象引用的对象中字段的值 (而不是标记对象中的字段)

    显示最近3次标记的提交:

    vonc@voncav:/mnt/d/git/git$ 
    
    git for-each-ref --count=3 --sort='-*authordate' --format='%(*authordate) %(*refname)'
    
    Thu Jun 21 10:00:06 2018 -0700 refs/tags/v2.18.0^{}
    Wed Jun 13 12:57:07 2018 -0700 refs/tags/v2.18.0-rc2^{}
    Mon Jun 4 21:41:41 2018 +0900 refs/tags/v2.18.0-rc1^{}