2009-10-27 3 views
9

У нас есть репозиторий с несколькими тегами. Каждый тег представляет собой версию программного обеспечения. Мы нажимаем репозиторий на удаленный сервер.Git теги исчезают при нажатии, а затем клонировать?

Когда мы делаем новый клоун с удаленного сервера, тегов больше нет. Как вы гарантируете, что другие разработчики или клиенты могут проверить определенные версии программного обеспечения с удаленного сервера?

ответ

12

git push --tags или git push remotetag-name

+0

Мне кажется странным, что теги должны храниться отдельно, я удивляюсь, почему! – corydoras

+2

На самом деле, теги не содержат отдельно. По умолчанию семантика 'git push' заключается в том, чтобы нажимать refs (ветви и теги) на вашей локальной машине, которые имеют соответствующие ссылки на пульте дистанционного управления. Так как любой данный тег еще не существует на пульте дистанционного управления, он не будет толкаться (и поскольку теги предназначены для неизменяемости, в любом случае было бы бессмысленно обновлять теги). Таким образом, вам нужно явно нажимать теги, когда вы хотите, чтобы они отображались на пульте дистанционного управления. –

+2

Возможно, это должно быть, я думаю, 'git push tag ', то есть параметр репозитория должен быть указан явно (поскольку интерпретация зависит от позиции). –

9

Альтернативное решения одной given by Brian Campbell было бы настроить пульт, чтобы подтолкнуть все реф, или толкать все ветви и метко:

[remote "repository"] 
     url = [email protected]:user/repo.git 
     push = +refs/heads/*:refs/heads/* 
     push = +refs/tags/*:refs/tags/* 
0

Следует отметить, что, так как git 1.8.3 (April 22d, 2013), а:

git push --follow-tags 

будет толкать любые новые коммиты, а также все аннотированные теги, на которые ссылается push-comm его.

Смежные вопросы