programing

refspec을 사용하여 Git 태그를 분기에 푸시하는 방법은 무엇입니까?

newstyles 2023. 6. 28. 21:25

refspec을 사용하여 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새로운 지점보다는.

기본적으로 태그의 내용을 푸시하고 싶습니다.1.0.0에.master원격 Git 저장소의 분기입니다.

git push --tags production

그것은 아마도 실패하고 있을 것입니다.1.0.0주석이 달린 태그입니다.다음 오류 메시지를 봤을 수 있습니다.

오류: 비커밋 개체를 분기 refs/heads/master에 쓰는 중

주석이 달린 태그에는 태그가 지정된 커밋 개체를 가리키는 고유한 개체 유형이 있습니다.분기는 태그 개체를 유용하게 가리킬 수 없으며 개체만 커밋할 수 있습니다.주석이 달린 태그를 다시 "필링"하여 개체를 커밋하고 대신 푸시해야 합니다.

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

이 경우에도 사용할 수 있는 다른 구문이 있지만 태그 개체가 커밋(또는 커밋을 가리키는 태그 개체)이 아닌 다른 개체를 가리킬 경우에는 약간 다른 의미를 의미합니다.

git push production +1.0.0^{}:master

이러한 태그 제거 구문은 수정사항 지정git-rev-dll(1)에 설명되어 있습니다.

다음과 같이 태그를 만든 다음 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충분할 겁니다.

언급URL : https://stackoverflow.com/questions/4061481/how-do-you-push-a-git-tag-to-a-branch-using-a-refspec