Git мелкий выбор нового тега

Если я клонирую репозиторий с максимальной глубиной 1 в теге, он работает и рушит только это. Если затем я хочу сделать выборку с глубиной 1 или без для нового тега, он выполняет некоторую обработку, но тег никогда не отображается в "теге git". Если я укажу опцию --tags, он загрузит весь репозиторий, а не только новую информацию. Я не против, чтобы хранилище получало больше истории, я просто хочу избежать времени загрузки. Есть ли способ получить новый тег без получения всех тегов из мелкого клонированного репозитория?

git clone --branch 1.0 --depth 1 repositoryPath
git fetch --depth 1 origin tags/1.1 # Does processing but no new tags
git fetch --tags origin tags/1.1 # Pulls down the rest of the repository and adds all tags
git fetch --depth 1 --tags origin tags/1.1 # Same as above

Теперь я заметил это в документации: "--depth ... Теги для углубленных коммитов не выбираются".

Это то, с чем я сталкиваюсь? Нет ли способа сделать это, кроме загрузки всех тегов?

1 ответ

Решение

Вы можете использовать полный <refspec> формат:

git fetch --depth 1 origin refs/tags/1.1:refs/tags/1.1

Или, как указано в опциях git-fetch (под <refspec>):

tag <tag> означает так же, как refs/tags/<tag>:refs/tags/<tag>; он запрашивает загрузку всего до заданного тега.

Таким образом, краткий ответ на ваш вопрос будет

git fetch --depth 1 origin tag 1.1
Другие вопросы по тегам