Почему git log --decorate
не отображается более одного тега для каждой фиксации?
РЕДАКТИРОВАТЬ : Чарльз Бейли придумал ответ (по крайней мере, в моем случае).
По сути, у меня был один тег, указывающий на другой тег, указывающий на фиксацию. Из-за этого дополнительного уровня косвенности тег не отображался в журнале. Мне придется это исправить, иссушить, исправив наш сценарий тегирования для правильного тегирования, или каким-нибудь сценарием оболочки voodoo для рекурсивного следования тегам. В любом случае, я оставлю этот вопрос только для справки, если кто-то этого захочет. (Я новичок в переполнении стека, но предполагаю, что это правильный протокол?)
... Далее следует исходный вопрос ...
Предыстория: мы используем GIT на работе для управления версиями, и у нас есть политика всегда помечать коммит при развертывании. (На самом деле это сценарий, который делает теги, а затем извлекает тег на сервере). Поскольку это веб-приложение с отдельными промежуточным и производственным серверами, мы часто помечаем выпуск для постановки (для тестирования или чего-то еще), а затем помечаем тот же коммит для производства.
Так что на самом деле очень часто у нас есть несколько тегов в одном коммите. Было бы очень хорошо видеть это в текстовом журнале, но, похоже, это не поддерживает. В настоящее время я работаю над этой проблемой, вручную проверяя тег, который ищу, или активизируя его gitk
. Хотя оба этих решения работают, мне кажется, что git log --decorate
по умолчанию поддерживать только один тег для каждой фиксации действительно странно .
Я погуглил, но ничего не нашел. Я упускаю что-то очевидное?
PS (на самом деле я использую строку настраиваемого формата, которая %d
, согласно справочным страницам и некоторым быстрым тестам, эквивалентна --decorate
)
Ответы:
Обратите внимание на тег тега (тегирование тега), который является источником вашей проблемы, как правильно указал Чарльз Бейли в комментарии:
Обязательно изучите эту цепочку , поскольку переопределить подписанный тег не так просто:
git tag
странице руководства серьезно не рекомендуетсяgit tag -f B
заменять имя тега "A
"не пытайтесь воссоздать подписанный тег с помощью
git tag -f
(см. фрагмент потока ниже)( Речь идет о крайнем случае, но весьма поучительно о тегах в целом, и он исходит от другого участника SO, Якуба Наребски ):
источник
Эта версия также распечатает сообщение о фиксации:
источник
Примечание: коммит 5e1361c от brian m. carlson (
bk2204
) (для git 1.9 / 2.0 Q1 2014) имеет дело с особым случаем оформления журнала тегами:log: правильно обрабатывать украшения с помощью связанных тегов
Пример:
источник