리포지토리를 만들었으므로 생성 한 태그가 리포지토리로 푸시되지 않은 것으로 보입니다. 내가 할 때 git tag
로컬 디렉토리에있는 모든 태그가 존재하지만 원격 저장소에 로그온하고 수행 할 때 git tag
, 처음 몇 쇼를.
무엇이 문제가 될 수 있습니까?.
리포지토리를 만들었으므로 생성 한 태그가 리포지토리로 푸시되지 않은 것으로 보입니다. 내가 할 때 git tag
로컬 디렉토리에있는 모든 태그가 존재하지만 원격 저장소에 로그온하고 수행 할 때 git tag
, 처음 몇 쇼를.
무엇이 문제가 될 수 있습니까?.
답변:
당신은 이것을 할 수 있습니다 :
git push --tags
git push --tags
동료가 모든 태그를 푸시하도록 훈련을받을 때 동료가 나쁜 태그를 제거하기가 매우 어려울 수 있으므로 다른 사람을 사용하거나 교육하지 않는 것이 좋습니다. 새 태그를 푸시하려고합니다. 이로 인해 모든 사용자에게 git push origin <tag_name>
지금 사용하도록 조언 할 것 입니다. " - 복사 stackoverflow.com/a/5195913/4130619
기본 git 원격 구성에서는 태그를 명시 적으로 푸시해야합니다 ( 태그 는 커밋과 함께 자동으로 페치됩니다 ). 당신은 사용해야합니다
$ git push <remote> tag <tagname>
단일 태그를 푸시하거나
$ git push <remote> --tags
모든 태그 git push --tags
를 푸시 하거나 기본 리모컨 (일반적으로 origin
) 으로 푸시합니다 .
이는 태그 푸시를 명시 적으로 만들기위한 의도 된 동작입니다. 푸시 태그는 일반적으로 의식적인 선택이어야합니다.
Junio C. Hamano가 쓴 내용 요약 (@Andre Miras의 의견 링크)
가져올 때 누군가가 게시 한 원격 저장소와 상호 작용하고 있습니다. 이는 다음을 의미합니다.
- 존재하는 태그 세트에는 게시자가 사람들이보고 싶어하는 모든 것이 있으며
- 당신뿐만 아니라 다른 사람들도 같은 태그를 볼 수 있습니다.
즉, 가져 오는 리포지토리의 태그는 공개 및 공유되도록 설계되었습니다. 모든 사람이 동일한 태그를 쉽게 가져 오면 개발자 간의 커뮤니케이션이 용이 해집니다.
그렇기 때문에 git fetch
태그를 자동으로 "따라"야합니다. 즉, 수정 버전을 다운로드 할 때 태그를 다운로드합니다. 즉, 게시 된 모든 관련 태그를 다운로드 합니다.
푸시 할 때 대부분의 시간이 공개되지 않은 작업 저장소에서 푸시하고 해당 저장소의 태그가 공개되지 않도록 설계되었습니다. 고유 한 로컬 태그를 사용하여 진행 상황을 표시 할 수 있으므로 저장소의 모든 태그를 변경 사항을 게시하기 위해 푸시하려는 저장소로 맹목적으로 푸시하는 것은 의미가 없습니다.
따라서 태그를 공개로 표시하려면 태그를 명시 적으로 푸시해야합니다.
또는 항상 모든 태그를 푸시하도록 푸시하려는 리모컨을 구성 할 수 있습니다 (예 .git/config
:
[원격 "게시"] # 또는 이름이 무엇이든 url = ... 푸시 = + refs / heads / * : refs / heads / * 푸시 = + refs / tags / * : refs / tags / *
즉 , 모든 헤드 (모든 분기) 및 모든 태그를 강제로 푸시합니다 (헤드를 강제로 푸시하지 않으려면 참조 스펙에서 '+'접두사를 제거하십시오).
이후 참고 자식 1.8.3 (2013 4월 22D) , 더 이상 푸시 태그에 다음 분기를 밀어이 명령을 수행해야하고, :
새로운 "
--follow-tags
"옵션은 분기를 밀어 낼 때 주석이 달린 관련 태그git push
를 푸시 하도록 지시합니다 " " .
이제 새로운 커밋을 추진할 때 시도 할 수 있습니다.
git push --follow-tags
그러나 모든 로컬 태그를 푸시 하지는 않지만 커밋이 참조 하는 주석 이 달린 태그 만 푸시합니다 git push
.
이것은 Junio C Hamano ( gitster
) 가 커밋 c2aba15 에 도입했습니다 .
새로운 옵션 "
--follow-tags
"은git push
다른 쪽에서 누락되고 다른 방식으로 푸시 된 히스토리로 도달 할 수있는 주석이 달린 태그를 푸시하도록 " "에 지시 합니다.예를 들어, "
simple
", "current
"또는 "upstream
"푸시를 사용하는 경우 일반적으로 히스토리를 푸시하여 현재의 커밋으로 이동합니다HEAD
.
이 옵션을 사용하면 해당 커밋에서 도달 할 수있는 모든 주석이 달린 태그를 다른쪽으로 푸시 할 수도 있습니다.
이 설정 push.followTags
은 --follow-tags
기본적 으로 포함시킬 수 있습니다 (Git 2.4.1+, 2015 년 2 분기). 자세한 내용은 " 동시에 자식 커밋 및 태그를 밀어 "
git push --follow-tags
더 이상 추진하지 않습니다git push
내가 보통하는 일은 :
[원격 "게시"] # 또는 이름이 무엇이든 url = ... 푸시 = : 푸시 = + refs / tags / * : refs / tags / *
그것은 이미 존재하는 모든 브랜치와 태그를 푸시한다는 것을 의미합니다. 강제로 누르지 않으며 수동으로 누르지 않은 분기를 누르지 않습니다.
모든 태그를 강제로 가져 오려면 다음과 같이 설정에서 구성 태그를 설정할 수 있습니다.
git config remote.origin.tagopt --tags
문서에서 :
이 값을 --no-tags로 설정하면 remote에서 가져올 때 자동 태그 추적 기능이 비활성화됩니다. --tags로 설정하면 원격 분기 헤드에서 도달 할 수없는 경우에도 remote에서 모든 태그를 가져옵니다. 이 플래그를 git-fetch (1)에 직접 전달하면이 설정을 무시할 수 있습니다. git-fetch (1)의 옵션 --tags 및 --no-tags를 참조하십시오.
git push --follow-tags
유용 할 수 있습니다, 아래 내 답변을