2015-08-06 13 views
2

Рассмотрим этот отрывок из 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):

enter image description here

ответ

1

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

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

Количество дополнительных фиксаций является число фиксаций, которые будут отображаться на «мерзавец войти v1.0.4..HEAD».

+0

Я не совсем уверен, почему это делается таким образом, но поскольку он, по-видимому, работает как дизайн, я приму ответ. Для моих целей мне нужно количество коммитов на пути между тегом и HEAD, поэтому я прибегну к тегу git log -ancestry-path..HEAD -oneline' и подсчитаю количество строк. Пока это работает. –