git标签和时间

use*_*638 -1 git commit git-tag

我的印象是标签会像提交一样,如果我有一个基于旧提交的克隆,我不希望看到git标签输出中列出的新标签.

但是,这种假设显然是错误的.它破坏了我计划使用标签的方式.我正在使用简单的标签.其他类型的标签会在时间上有所不同吗?

Kel*_*vin 5

我不确定你的目标,但是git并不容易按照指向的提交日期对标记进行排序.

经过一番研究和努力,我想出了这个:

git tag | xargs -I@ git log --format=format:"%ci %h @%n" -1 @ | sort
Run Code Online (Sandbox Code Playgroud)

样本输出:

2008-10-30 08:51:04 -0700 221793e REL_1.0.0
2008-10-31 12:06:57 -0700 51a406c REL_1.0.1
2008-10-31 13:01:18 -0700 e1e9751 REL_1.0.2
Run Code Online (Sandbox Code Playgroud)

稍微调整一下,这也适用于"git branch"来处理指示当前分支的星号.

另一个可能有用的命令...在日志输出中包含引用名称(分支,标记等):

git log --decorate
Run Code Online (Sandbox Code Playgroud)

您是否有一个工作流程或脚本依赖于旧克隆中不存在较新标记的假设?如果您正在克隆本地仓库,您可以尝试"git clone --no-hardlinks".但它可能不是您目标的最佳解决方案.