programing

SourceTree에서 푸시를 시도 할 때 "태그가 이미 있기 때문에 업데이트가 거부되었습니다."

nasanasas 2020. 9. 4. 07:32
반응형

SourceTree에서 푸시를 시도 할 때 "태그가 이미 있기 때문에 업데이트가 거부되었습니다."


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

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

내가 아는 한이 태그를 변경하지 않았습니다. 이 문제를 어떻게 해결할 수 있습니까?


git bash에서도이 문제를 해결할 수 있습니다 (소스 트리 UI에서 "터미널"버튼 클릭). 유형:

git pull --tags

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

  1. 태그를 마우스 오른쪽 버튼으로 클릭하고 (반드시 삭제를 선택 취소 모든 리모컨의에서 제거 태그를 체크 박스).
  2. 가져 오기 옵션을 선택합니다 (모든 태그를 로컬로 가져 와서 저장 하지 않아도됩니다).
  3. 이제 방금 삭제 된 태그가 있어야하며 푸시시도해 도 더 이상 해당 오류 메시지가 표시되지 않습니다.

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


push all tagsgit push를 확인할 때 UI 하단의 선택 취소 하십시오.


git pull --tags정말 잘 작동하지만 때때로이 명령을 사용해도 오류가 발생할 수 있습니다. 오류 메시지 예 :

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

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

출처:

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


누르는 동안 "Push all tags"버튼의 체크를 해제하십시오.

여기에 이미지 설명 입력


예, 실제로 태그를 먼저 당깁니다 push --tags. 내 문제를 해결했습니다.


이 방법 으로 SourceTree 의 문제를 해결합니다 .

  1. "모든 리모컨에서 태그 제거"를 선택하여 태그 삭제
  2. 태그 재생성

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

반응형