Подтвердить что ты не робот

GIT pull/fetch из определенного тега

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

Pull - выборка + слияние.

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

git fetch origin :refs/remotes/origin/master

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

git fetch origin :remotes/origin/master

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

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

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