Git-теги тоже подталкиваются?
Так как я создал свой репозиторий, похоже, что теги, которые я был
создание не передается в репозиторий. Когда я делаю git тег на
локальный каталог все теги присутствуют, но когда я вхожу в систему
удаленный репозиторий и сделать тег git, только первые несколько появляются.
в чем может быть проблема?
5 ответов:
по умолчанию git удаленной конфигурации вы должны нажать теги явно (пока они автоматически вместе с коммитами они указывают на). Вы должны использовать
$ git push <remote> tag <tagname>нажать один тег или
$ git push <remote> --tagsчтобы нажать все теги (или
git push --tagsчтобы нажать на пульт по умолчанию, обычноorigin).это очень предполагаемое поведение, чтобы сделать явным нажатие тегов. Толкая теги должны быть, как правило, сознательное выбор.
резюмируя то, что Junio C. Hamano писал (ссылка в комментариях @Andre Miras)
при извлечении вы взаимодействуете с удаленным репозиторием, который кто-то опубликовал, что означает:
- набор тегов, которые существуют все издатель хотел, чтобы люди видели, и
- не только вы, но и другие люди также увидите те же теги.
другими словами, теги в репозиториях, из которых вы извлекаете, предназначены для общего доступа и совместного использования. Это облегчит общение между разработчиками, если всем будет легко получить эти же теги.
вот почему
git fetchавтоматически "следует" за тегами, т. е. он загружает теги при загрузке ревизий, на которые они указывают - другими словами, загружает все соответствующие опубликовано теги.при нажатии вы нажимаете из своего рабочего репозитория, который больше всего время не является публичным, и теги в этом репозитории не предназначены для публичного использования. Вы можете использовать свои собственные локальные теги, чтобы отметить свой прогресс, поэтому нет смысла слепо нажимать все теги в вашем репозитории в репозиторий, который вы нажимаете, чтобы опубликовать свои изменения, чьи теги по определению являются общедоступными.
вот почему вам нужно нажать тег явно, чтобы пометить тег как публичный.
в качестве альтернативы вы можете настроить пульт дистанционного управления вы нажимаете, чтобы всегда нажимать все теги, например, положить что-то подобное в ваш
.git/config:[remote "publish"] # or whatever it is named url = ... push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/*это значит силу нажмите все головки (все ветви) и все теги (если вы не хотите принудительного нажатия головок, удалите префикс '+' из refspec).
обратите внимание, что с git 1.8.3 (22 апреля 2013 г.), вам больше не нужно делать 2 команды, чтобы нажать ветви, а затем нажать теги:
новый "
--follow-tagsопция" говорит "git push" к нажмите соответствующие аннотированные теги при выталкивании ветвей.теперь вы можете попробовать, при нажатии новых коммитов:
git push --follow-tagsэто не будет толкать все локальные теги, хотя, только аннотированный те, на которые ссылаются коммиты, которые нажимаются с помощью
git push.
это было введено в commit c2aba15 by Junio C Hamano (
gitster):новый вариант "
--follow-tags" говорит "git push" чтобы подтолкнуть аннотированные теги, которые отсутствуют с другой стороны, и которые могут быть достигнуты историей, которая в противном случае выталкивается.например, если вы используете "
simple","current" или "upstream" push, вы обычно нажимаете историю, ведущую к фиксации в вашем текущемHEADи больше ничего.
С помощью этой опции вы также переместите все аннотированные теги, которые могут быть достигнуты с этой фиксации на другую сторону.
конфигурации
push.followTagsпозволяет включить--follow-tagsпо умолчанию (Git 2.4.1+, Q2 2015). Смотрите "Push git commits & tags одновременно"
обычно я делаю так:
[remote "publish"] # or whatever it is named url = ... push = : push = +refs/tags/*:refs/tags/*Это означает, что он толкает каждую ветку, которая уже есть, плюс теги. Он не форсирует толчок, и он не толкает ветку, которую вы не нажимали вручную.
и если вы хотите принудительно извлечь все теги, вы можете установить его в конфигурации:
git config remote.origin.tagopt --tagsдокументы:
установка этого значения в --no-tags отключает автоматический тег, следующий при извлечении из удаленного . Установка его в --tags будет получать каждый тег из удаленного, даже если они недоступны из удаленного филиала руководители. Передача этих флагов непосредственно в git-fetch (1) может переопределить это установочный. Вижу варианты-теги и-нет-теги git-fetch (1).
Comments