git 描述:莫名其妙的提交计数

git describe: inexplicable commit count

考虑 git log --oneline --decorate --graph 的这段摘录:

*   552485a (HEAD -> master, origin/master) Finish v0.8.4
|\
| * c198066 (tag: v0.8.4) some commit message
* |   343af72 Finish v0.8.3
|\ \
| |/
| * 0267e30 (tag: v0.8.3) some commit message
* |   8f0ff57 some commit message
|\ \
| |/
...

(注意:标签 v0.8.4 在分支 'develop' 的提交上)

为什么当我 运行 git describe 我得到这个:

v0.8.4-16-g552485a

也就是说,git 自标记 v0.8.4 以来计算了 16 次提交。我希望它 return v0.8.4-1-g552485a.

更具体地说(使用 --debug 选项时):

suche zur Beschreibung von HEAD
beendete Suche bei b53e85f9c8ee785c0ce50f727819b267107554fd
 annotated         16 v0.8.4
 annotated         17 v0.8.3
 annotated         18 v0.8.2
 annotated         22 v0.8
 annotated         49 v0.7
 annotated         60 v0.6
 annotated         85 v0.5
103 Commits durchlaufen
v0.8.4-16-g552485a

有趣的是,如果我切换到开发分支:

0992f78 (HEAD -> develop, origin/develop) Some commit message.
c198066 (tag: v0.8.4) Minor change.
0267e30 (tag: v0.8.3) Minor changes.

git describe returns 符合预期:v0.8.4-1-g0992f78

背景:我正在使用 SmartGit 及其 Git-Flow 功能。

这是相关提交的图形视图(红色:master,蓝色:develop):

这个数字不仅是根据标签以来的提交计算的。在合并的情况下,其他分支的提交也包括在内。

git-describe

的文档

The number of additional commits is the number of commits which would be displayed by "git log v1.0.4..HEAD".