programing

소스 트리를 밀어넣으려고 할 때 "태그가 이미 존재하기 때문에 업데이트가 거부되었습니다."

subpage 2023. 6. 23. 22:09
반응형

소스 트리를 밀어넣으려고 할 때 "태그가 이미 존재하기 때문에 업데이트가 거부되었습니다."

소스 트리를 통해 푸시를 시도할 때 다음 오류가 발생합니다.

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master 
Pushing to https://user@github.com/repo.git
To https://user@github.com/repo.git
 = [up to date]      master -> master
...
 ! [rejected]        example_tag -> example_tag (already exists)
updating local tracking ref 'refs/remotes/origin/master'
error: failed to push some refs to 'https://user@github.com/repo.git'
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above

제가 알기로는 이 태그를 변경하지 않았습니다.이걸 어떻게 고칠 수 있을까요?

또한 이 Gitbash를 해결할 수 있어야 합니다(소스 트리 UI에서 "터미널" 버튼 클릭).유형:

git pull --tags

충돌하는 태그가 있는 경우 다음을 포함할 수 있습니다.-f로컬 충돌 태그를 원격 버전으로 재정의하는 명령의 옵션입니다.

git pull --tags -f

보관할 태그를 로컬로 변경하지 않은 경우 이미 존재하기 때문에 거부된 태그를 제거할 수 있습니다.example_tag이 경우):

  1. 태그를 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다(모든 원격에서 태그 제거 확인란의 선택을 취소해야 합니다).
  2. 가져오기 옵션을 선택합니다(모든 태그를 로컬로 가져오기 및 저장할 필요는 없습니다).
  3. 이제 방금 삭제된 태그가 다시 표시됩니다. 푸시를 시도하면 해당 오류 메시지가 더 이상 표시되지 않습니다.

SourceTree에서 이 문제가 일반적인 이유는 Push all tags 옵션이 기본적으로 on으로 설정되어 있기 때문입니다. (이 오류를 숨기는 또 다른 방법은 해당 옵션의 선택을 취소하는 것입니다.)

git pull --tags이 명령을 사용해도 오류가 발생할 수 있습니다.오류 메시지 예:

 ! [rejected]        example_tag      -> example_tag  (would clobber existing tag)

이 문제는 다음 명령으로 해결할 수 있습니다.git pull --tags -f

-f힘을 의미합니다.

출처:

https://github.com/concourse/git-resource/issues/233

선택 취소push all tags사용자가 Git Push를 확인할 때 UI 하단에서

누르는 동안 "Push all tags" 버튼의 선택을 취소해야 합니다.

enter image description here

소스 트리에서는 다음과 같이 작동합니다.

  1. 가져오기 아이콘을 클릭합니다.
  2. "모든 태그 가져오기"를 선택합니다.
  3. 확인 클릭

언급URL : https://stackoverflow.com/questions/31929667/updates-were-rejected-because-the-tag-already-exists-when-attempting-to-push-i

반응형