GIT вытащить / извлечь из определенного тега - PullRequest
20 голосов
/ 19 октября 2010

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

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

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

Ответы [ 2 ]

12 голосов
/ 19 октября 2010

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

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

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

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

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

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

5 голосов
/ 24 апреля 2012

Pull is fetch + merge.

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

git fetch origin :refs/remotes/origin/master

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

git fetch origin :remotes/origin/master

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

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

git fetch <repo_url> +refs/tags/<TAG>:<branch>
...