GIT вытащить / извлечь из определенного тега

Есть ли способ извлечь / извлечь код из определенного тега в репо.

Знаю, что после клонирования я могу оформить заказ на тег, но можно ли указать тег во время извлечения?

В ClearCase я могу перебазировать или доставить конкретную базовую линию кода, есть ли способ, с помощью которого я могу аналогичным образом использовать теги git для перетаскивания / вставки кода в указанный тег?

2 ответа

Решение

С ClearCase будет немного по-другому, потому что вы можете перебазировать только базовую линию, созданную в родительском потоке (хотя вы можете доставить любую базовую линию из любого потока в ваш поток).
Таким образом, существуют некоторые ограничения для вида слияния, которое вы делаете с ClearCase.

С помощью Git вы можете объединить любой коммит с HEAD вашей текущей ветви.
Если этот коммит поступает из удаленного репо, он сначала будет импортирован в удаленные ветви вашего локального репо ('fetch' часть git pull) и затем слил.

 git pull [options] [<repository> [<refspec>…]]

"refspec"часть команды git pull означает, что вы можете тянуть что угодно.

<refspec> может назвать произвольный удаленный ref (например, имя тега) или даже набор ссылок с соответствующими удаленными ветвями отслеживания (например, refs/heads/:refs/remotes/origin/), но обычно это имя ветки в удаленном хранилище.

Смотрите также Как получить удаленную ветку с указанным идентификатором коммита?

Тяга - это выборка + слияние.

Говоря о том, как получить конкретную удаленную ссылку (тег или ветвь), вероятно, лучше пояснить пример:

git fetch origin :refs/remotes/origin/master

Или более короткая форма:

git fetch origin :remotes/origin/master

Обратите внимание, что это работает, даже если remotes/origin/master был удален локально.

Еще один пример создания локальной ветки прямо из удаленного тега

git fetch <repo_url> +refs/tags/<TAG>:<branch>
Другие вопросы по тегам