2013-06-28 2 views
4

git 및 태그를 처음 사용했습니다. 내 팀 구성원이 다음 명령 실행 : 나는 git pull 다음 내 환경에서 git tag을 실행할 때 이제로컬에 원격 태그가 표시되지 않음

git tag v1.27.1 
git push origin v1.27.1 

을, 나는 모든 태그의 목록을 볼 것으로 예상. 비슷한 방법으로 리포하도록 푸시 된 다른 태그는 볼 수 있지만이 태그는 아닙니다. 나는 어떻게 /이 태그를 잃어 버렸는 지 알아 내고 싶다. 어떻게해야합니까? 내 접근 방식은 무엇이되어야합니까?

또한 태그를 만든 팀원은 컴퓨터가 가동 될 때 태그를 볼 수 있습니다 git tag 감사합니다!

답변

21

불행히도 git pull은 기본적으로 태그를 가져 오지 않습니다. git fetch --tags을 실행해야합니다.

git pullgit fetch의 기본 동작은 현재 참조에서 직접 액세스 할 수있는 태그 만 검색하는 것입니다. 태그가 없으면 가져 오지 않습니다. --tagsgit fetch에 건네면 git에게 현재 참조로 연결할 수 있는지 여부를 알려줍니다.

+0

어떻게 다른 태그 내 팀 구성원 추가를 참조하십시오합니까? –

+1

'git tag'는 모든 태그 목록을 제공합니다. 그래서'git tag | grep v1.27.1'에는 이전에 누락 된 태그가 표시됩니다. '--tags'를 사용하여 가져온 후에도 여전히 보이지 않는다면 원격 저장소를'git ls-remote '로 체크하고 목록에서 태그를 확인하십시오. 거기에 없으면 중앙 저장소에 저장하지 않으므로 개발자가 직접 푸시해야합니다. – jszakmeister

+1

해결책 주셔서 감사합니다. git fetch --tags가 저에게 효과적이었습니다. 나는 이것을 완전히 이해하지 못한다. 현재 참조로 직접 액세스 할 수 있다고 말하면 현재 참조는 무엇을 의미합니까? –

0

기본적으로 git push 명령은 태그를 원격 서버로 전송하지 않습니다. 태그를 작성한 후에 명시 적으로 공유 서버에 태그를 푸시해야합니다. 이 프로세스는 원격 지점을 공유하는 것과 같습니다. git push origin <tagname>을 실행할 수 있습니다.

한 번에 많은 태그를 푸시하고 싶다면 --tags [git push --tags] 옵션을 git push 명령에 사용할 수 있습니다. 이렇게하면 모든 태그가 아직없는 원격 서버로 전송됩니다.

누군가 다른 사람이 저장소에서 복제하거나 가져 오면 모든 태그도 받게됩니다. 나는 풀을 이눔 후 다음

Source

관련 문제