在git上显示奇特的标记列表

在git上显示奇特的标记列表,git,Git,我有以下git日志别名: lo = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short -n 8 我怎样才能用像上面这样奇特的格式显示所有git标记的列表,而不是像git标记调用那样只显示标记名?对此我没有一个简洁的答案,但您可以为这样的东西创建一个shell别名: for t in $(git tag -l) do printf "%-16s" $t echo `git show -s --pre

我有以下git日志别名:

 lo = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short -n 8

我怎样才能用像上面这样奇特的格式显示所有git标记的列表,而不是像
git标记
调用那样只显示标记名?

对此我没有一个简洁的答案,但您可以为这样的东西创建一个shell别名:

for t in $(git tag -l)
do
    printf "%-16s" $t
    echo `git show -s --pretty=format:"%h %ad | %s%d [%an]" --date=short $t^{}`
done
。。。主git存储库上的哪个将产生如下输出:

v1.7.9          828ea97 2012-01-27 | Git 1.7.9 (v1.7.9) [Junio C Hamano]
v1.7.9-rc0      eac2d83 2012-01-06 | Git 1.7.9-rc0 (v1.7.9-rc0) [Junio C Hamano]
v1.7.9-rc1      6db5c6e 2012-01-12 | Git 1.7.9-rc1 (v1.7.9-rc1) [Junio C Hamano]
v1.7.9-rc2      bddcefc 2012-01-18 | Git 1.7.9-rc2 (v1.7.9-rc2) [Junio C Hamano]
v1.7.9.1        90020e3 2012-02-14 | Git 1.7.9.1 (v1.7.9.1) [Junio C Hamano]
v1.7.9.2        78f4c9f 2012-02-22 | Git 1.7.9.2 (v1.7.9.2) [Junio C Hamano]
v1.7.9.3        69f4e08 2012-03-05 | Git 1.7.9.3 (v1.7.9.3) [Junio C Hamano]
v1.7.9.4        a460348 2012-03-12 | Git 1.7.9.4 (v1.7.9.4) [Junio C Hamano]
v1.7.9.5        8ced9c9 2012-03-26 | Git 1.7.9.5 (v1.7.9.5) [Junio C Hamano]
v1.7.9.6        cb2ed32 2012-04-02 | Git 1.7.9.6 (v1.7.9.6) [Junio C Hamano]
v1.7.9.7        d0f1ea6 2012-04-26 | Git 1.7.9.7 (v1.7.9.7) [Junio C Hamano]

对我来说,不明显的一点是标记名上的
^{}
后缀,这意味着取消引用任何标记对象以找到它所指向的提交,如上所述。

这太棒了!如果能让它首先列出最新的标签会更好:
git-tag
似乎没有这样的选项,我必须用另一个命令对它们进行排序,还是我遗漏了什么?@Lohoris:我认为这对于
git-tag-l
-标签不能很好地定义-标签可以指向任何东西:标签对象、提交对象、blob对象等等,例如,没有附加日期。一个简单的解决方案是将
%ad
更改为
%ad:%ai
,然后根据第三列进行排序。感谢%ai,我搜索了很多,但在任何地方都找不到它!将$t的“for”行更改为
(git branch-l | cut-b3-
对分支执行相同的操作。