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>