Рассмотрим этот отрывок из 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
|\ \
| |/
...
(NB: тег v0.8.4 на коммит из филиала «развивать»)
Как приходит, что, когда я бегу git describe
я получаю это:
v0.8.4-16-g552485a
что, мерзавец насчитывает 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.
Вот графическое представление соответствующих фиксаций (красный: мастер, синий: Develop):
Я не совсем уверен, почему это делается таким образом, но поскольку он, по-видимому, работает как дизайн, я приму ответ. Для моих целей мне нужно количество коммитов на пути между тегом и HEAD, поэтому я прибегну к тегу git log -ancestry-path..HEAD -oneline' и подсчитаю количество строк. Пока это работает. –