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