git описать: необъяснимое количество коммитов

Рассмотрим этот отрывок из 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 находится в коммите из ветки «разработка»)

Почему, когда я запускаю git describe, я получаю это:

v0.8.4-16-g552485a

то есть git считает 16 коммитов, начиная с тега v0.8.4. Я ожидаю, что он вернет 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 возвращает ожидаемое значение: v0.8.4-1-g0992f78

Предыстория: я использую SmartGit и его функциональность Git-Flow.

Вот графическое представление соответствующих коммитов (красный: мастер, синий: разработка):

введите здесь описание изображения


person Andre Loker    schedule 06.08.2015    source источник


Ответы (1)


Число рассчитывается не только с коммитами, так как с тегами. В случае слияния также включаются коммиты другой ветки.

Документация git-describe

Количество дополнительных коммитов — это количество коммитов, которое будет отображаться в «git log v1.0.4..HEAD».

person blashser    schedule 06.08.2015
comment
Я не совсем уверен, почему это сделано именно так, но поскольку это, по-видимому, работает как дизайн, я приму ответ. Для моих целей мне нужно количество коммитов на пути между тегом и HEAD, поэтому я прибегну к git log --ancestry-path tag..HEAD --oneline и посчитаю количество строк. Кажется, пока это работает нормально. - person Andre Loker; 07.08.2015