Git опишите, давая различные теги

Я отметил свой репозиторий тегом "Release_V1.0.0.4". Но вот что я получил от "git description" и "git description origin".

[root pds_series] # git description

Release_V1.0.0.2-22-g0859de9

[root pds_series] # git описывает происхождение

Release_V1.0.0.2-18-gce2b24c

С "git description --all" и "git description --tags" я получил правильный тег.

[root pds_series] # git description --all

теги / Release_v1.0.0.4

[root pds_series] # git description --tags

Release_v1.0.0.4

Также с помощью следующей команды я получил правильный тег.

[root pds_series] # git log --pretty = формат: '% ad% h% d' --abbrev-commit --date = short -1

2012-11-15 0859de9 (HEAD, Release_v1.0.0.4, master)

Кто-нибудь знает причину этого? Как я могу решить эту проблему?

1 ответ

Решение

Вы, вероятно, использовали "легкий" тег. По умолчанию git describe использует только теговые объекты для описания коммита, тогда как с --tags он будет использовать любую ссылку под refs/tags даже если они указывают непосредственно на коммит, а не на объект тега.

Для создания объекта тега вы должны использовать один из -a (аннотированный) или -s или же -u (подписано) варианты git tagв противном случае будет создан легкий тег (ссылка, указывающая прямо на коммит).

Чтобы увидеть разницу между вашими двумя тегами, попробуйте:

git cat-file -t Release_V1.0.0.2

а также:

git cat-file -t Release_v1.0.0.4

On, вероятно, скажет "tag", а другой скажет "commit".

Чтобы решить эту проблему, вы можете воссоздать тег с -f и скажи) -a,

git tag -f -a Release_v1.0.0.4 Release_v1.0.0.4
Другие вопросы по тегам