У меня была эта проблема в среде сборки CI, где инструмент CI выполнял поверхностный клон репозитория.Это расстраивало, потому что в моей среде разработки команда
git describe --tags
выдала бы мне вывод, похожий на
2.2.12-7-g8ec9d6c9
, тогда как в среде сборки я получил бы «роковые имена не найдены»ошибка.Если бы я попытался использовать тег --always
git describe --tags --always
, я бы просто получил хэш последнего коммита, но не самый последний тэг до этого коммита
8ec9d6c9
Выполнениеgit pull
в среде сборки не поможет, потому что после мелкого клонирования репо будущие извлечения не будут обновлять теги.
Решением было обеспечить первоначальный клон репо всреда сборки не была мелким клоном (т. е. команда git clone
не использовалась с параметрами --depth
, --shallow-since
или --shallow-exclude
).