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