Programming

자식 커밋 및 태그를 동시에 푸시

procodes 2020. 3. 5. 08:00
반응형

자식 커밋 및 태그를 동시에 푸시


나는 git push --tagsold와 별개의 작업 인 이유를 알고 git push있습니다. 실수로 태그를 푸시하지 않기 때문에 푸시 태그는 의식적인 선택이어야합니다. 괜찮아. 그러나 둘 다 함께 밀어 넣는 방법이 있습니까? (에서 제외 git push && git push --tags)


2015 년 5 월 업데이트

현재 자식 2.4.1 을 수행 할 수 있습니다

git config --global push.followTags true

true로 설정하면 기본적으로 --follow-tags 옵션을 활성화하십시오. --no-follow-tags를 지정하여 푸시시이 구성을 재정의 할 수 있습니다.

2013 년 4 월 업데이트

때문에 자식 1.8.3 (4 월 22D, 2013) , 더 이상 태그를 밀어 다음 지점을 밀어하고이 명령을 수행 할 필요가 없습니다 :

새로운 " --follow-tags"옵션은 분기를 밀어 낼 때 주석이 달린 관련 태그git push푸시 하도록 지시합니다 " " .

이제 새로운 커밋을 추진할 때 시도 할 수 있습니다.

git push --follow-tags

그러나 모든 로컬 태그를 푸시 하지는 않지만 커밋이 참조하는 태그 만 푸시합니다 git push.

Git 2.4.1+ (2015 년 2 분기)는 옵션을 소개합니다 push.followTags: " git push"에 지점을 포함시키는 방법 "을 참조하십시오 .

원래 답변, 2010 년 9 월

핵 옵션은 git push --mirror모든 심판을 추진할 것이다 refs/.

현재 브랜치 커밋으로 하나의 태그 만 푸시 할 수도 있습니다.

git push origin : v1.0.0 

--tags옵션을 다음과 같은 참조 스펙과 결합 할 수 있습니다 .

git push origin --tags :

(왜냐하면 --tags: 명령 줄에 명시 적으로 나열된 참조 사양 외에도 모든 참조 refs/tags가 푸시 됨 )


또한 "이 항목이 자식 푸시"호출 하나와 브랜치와 태그를 누르면 " "

간단한 팁이 Zoltán Füzesi Git 메일 링리스트게시되었습니다 .

나는 .git/config이것을 해결하기 위해 사용 한다 :

[remote "origin"]
    url = ...
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = +refs/heads/*
    push = +refs/tags/*

이 줄을 추가 git push origin하면 모든 지점과 태그가 업로드됩니다. 그중 일부만 업로드하려면 열거 할 수 있습니다.

아직 직접 시도하지는 않았지만 분기와 태그를 동시에 밀어 넣는 다른 방법이 git push에 추가 될 때까지 유용 할 수 있습니다.
반면에 입력하는 것은 괜찮습니다.

$ git push && git push --tags

주의 로, 주석 에 의해 아심 키 쇼어

push = +refs/heads/*모든 지점강제로 제거합니다 .

이것은 지금 막 조금, 그래서 참고.


René Scheibe이 흥미로운 의견을 추가 합니다 .

--follow-tags매개 변수는 아래의 태그 만으로 오해의 소지 .git/refs/tags간주됩니다.
경우 git gc실행, 태그에서 이동 .git/refs/tags.git/packed-refs. 나중에 git push --follow-tags ...더 이상 예상대로 작동하지 않습니다.


어쩌면 이것은 누군가를 도울 수 있습니다.

 1. git commit -a -m "msg"  
 2. git tag 0.1.0                // creates a new tag locally     
 3. git push origin tag 0.1.0    // pushes the tag & the code in the remote repo          

힘내 GUI

Git GUI에는 PUSH 버튼이 있습니다-펑을 용서하고, 대화 상자가 열리면 대화 상자에 태그 확인란이 있습니다.

태그없이 명령 줄에서 분기를 푸시 한 다음 --follow-tags옵션을 사용하여 분기를 다시 푸시하려고했습니다 . 이 옵션은 다음과 같은 주석이 달린 태그로 설명됩니다. 내 태그는 간단한 태그였습니다.

나는 무언가를 고치고 수정 사항으로 커밋에 태그를 붙인 다음 (동료가 수정 프로그램을 선택할 수 있음) 소프트웨어 버전 번호를 변경하고 내가 만든 릴리스에 태그를 지정하여 동료가 해당 릴리스를 복제 할 수 있습니다.

Git은 모든 것이 최신이라고 답했다. 태그를 보내지 않았습니다! 태그에 주석이 달지 않았기 때문일 수 있습니다. 아마도 지점에 새로운 것이 없었기 때문일 것입니다.

Git GUI와 비슷한 푸시를했을 때 태그가 전송되었습니다.

Git GUI와 함께 전송 된 태그

당분간은 커맨드 라인이 아닌 Git GUI를 사용하여 변경 사항을 리모컨으로 푸시하려고합니다 --follow-tags.


@since Git 2.4

git push --atomic origin <branch name> <tag>

참고 URL : https://stackoverflow.com/questions/3745135/push-git-commits-tags-simultaneously



반응형