[git] 참조 스펙을 사용하여 Git 태그를 지점으로 푸시하는 방법은 무엇입니까?

예를 들어 태그 1.0.0를 리모컨에 밀어 붙이고 싶습니다master 지점으로 .

나는 지금 다음을하고있다 :

git push production +1.0.0:master

1.0.0태그내부의 코드master가 원격 저장소의분기로 푸시 되기 때문에 푸시를 강제하고 싶습니다 .

내가 뭘 잘못하고 있죠?

업데이트 # 1

Git 리포지토리가 있는 서버에 SSH를 실행 git branch -l하면 master분기가 표시 되지 않습니다 .

업데이트 # 2

git tag -l원격 Git 리포지토리 내부에서 실행 한 후에 master는 다음과 같은 내용 이 표시됩니다.

git push production 1.0.0:master

실제로 태그를 푸시하고 새 분기가 아닌 이름 master지정된 태그를 작성했습니다 .

기본적으로 태그 의 내용 을 원격 Git 리포지토리 1.0.0master분기 로 푸시하고 싶습니다 .



답변

1.0.0주석이 달린 태그 이므로 실패했을 수 있습니다. 다음과 같은 오류 메시지가 표시되었을 수 있습니다.

오류 : 커밋되지 않은 객체를 분기 심판 / 헤드 / 마스터에 쓰려고합니다.

주석이 달린 태그에는 태그가 지정된 커밋 객체를 가리키는 고유 한 유형의 객체가 있습니다. 분기는 유용하게 객체를 태그 할 수 없으며 객체를 커밋 만합니다. 주석이 달린 태그를 다시 벗겨내어 객체를 커밋하고 대신 밀어야합니다.

git push production +1.0.0^{commit}:master
git push production +1.0.0~0:master          # shorthand

이 경우에도 작동하는 또 다른 구문이 있지만, 태그 객체가 커밋 이외의 것을 가리키는 경우 (또는 커밋을 가리키는 태그 객체 (…를 가리키는 태그 객체)의 경우 약간 다른 의미입니다) .

git push production +1.0.0^{}:master

구문 박리 이러한 태그에 기술되어 자식 반전 파싱 (1) 아래에 지정 개정 .


답변

git push --tags production


답변

다음과 같이 태그를 만든 다음 GitHub에 푸시합니다.

git tag -a v1.1 -m "Version 1.1 is waiting for review"
git push --tags

Counting objects: 1, done.
Writing objects: 100% (1/1), 180 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:neoneye/triangle_draw.git
 * [new tag]         v1.1 -> v1.1


답변

단일 태그를 푸시하는 경우 : git push <reponame> <tagname>

예를 들어 git push production 1.0.0. 태그는 브랜치에 바인딩되지 않고 커밋에 바인딩됩니다.

마스터 브랜치에서 태그의 컨텐츠를 원할 경우 머신에서 로컬로 수행하십시오. 지역 마스터 지점에서 계속 개발한다고 가정합니다. 그렇다면 git push origin master충분해야합니다.


답변