2010-10-18 3 views
19

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

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

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

ответ

11

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

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

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

«refspec» часть команды мерзавец тянуть означает, что вы можете вытащить что-нибудь.

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

Смотрите также How to pull remote branch with specified commit id?

5

Прицепные является выборка + сливаться.

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

git fetch origin :refs/remotes/origin/master 

Или в краткой форме:

git fetch origin :remotes/origin/master 

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

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

git fetch <repo_url> +refs/tags/<TAG>:<branch> 
Смежные вопросы