Git describe不提供预期的标签

时间:2015-01-06 10:23:02

标签: git tags describe

我有一个使用

的脚本
git describe --tags --abbrev=0

为了确定repo上的最新标签。 到目前为止一切都很好。

但是如果我必须在同一个提交上使用标记,那么该命令会为我提供第一个可用的标记,而不是最新的标记。

这是一个简单的例子

~ $ mkdir test_dir
~ $ cd test_dir/
test_dir $ git init
Initialized empty Git repository in /home/amaurin/test_dir/.git/
test_dir (unborn) $ touch coucou
test_dir (unborn ✱1) $ git add coucou
test_dir (unborn ✚1) $ git commit -m "Initial Commit"
[master (root-commit) 6972f53] Initial Commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 coucou
test_dir (master ✔) $ git tag 1
test_dir (master ✔) $ git describe --tags --abbrev=0
1
test_dir (master ✔) $ git tag 2
test_dir (master ✔) $ git tag
1
2
test_dir (master ✔) $ git describe --tags --abbrev=0
1

在最后一次通话中,我期待2,而不是1,我不明白为什么......

有趣的是,我在GIT更新日志中看到类似问题已经修复:

  
      
  • " git describe"没有指向同一提交的绑定标记   正确;注意到新的优先选择   标记日期现在。
  •   

https://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.7.1.1.txt 而有趣的是我有一个最新版本的git

$ git --version
git version 2.2.1

请帮助:' - (

叹息......叹息......

1 个答案:

答案 0 :(得分:2)

您使用的是轻量级代码,因此没有代码日期。 使用带注释的标签会为您提供一个记录标签日期的标签对象。 (带注释的标签必须有消息。)

git tag 1 -m 'Tag 1'
git tag 2 -m 'Tag 2'

绝对阅读http://git-scm.com/book/en/v2/Git-Basics-Tagging以了解有关Git中标签的更多信息。