개발관련/Git

Git에서 유효하지 않은 원격 분기 참조 제거하는 방법

Rateye 2021. 12. 16. 09:39
728x90
반응형
질문 : Git에서 유효하지 않은 원격 분기 참조를 어떻게 제거합니까?

내 현재 저장소에는 다음과 같은 출력이 있습니다.

$ git branch -a
* master
  remotes/origin/master
  remotes/public/master

분기 목록에서 remotes/public/master 를 삭제하고 싶습니다.

$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.

git remote 의 출력은 public 목록이 없기 때문에 이상합니다.

$ git remote show 
origin

지점 목록에서 '리모트 / 공개 / 마스터'를 삭제하려면 어떻게해야합니까?

업데이트, git push 명령을 시도했습니다.

$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
답변

정리가 필요할 수 있습니다.

git gc --prune=now

또는 자두가 필요할 수 있습니다.

git remote prune public

prune 

<name> 아래의 모든 부실 추적 분기를 삭제합니다. 이러한 부실 분기는 <name>에서 참조하는 원격 저장소에서 이미 제거되었지만 "remotes / <name>"에서 여전히 로컬로 사용할 수 있습니다.

--dry-run 옵션을 사용하여 잘라낼 분기를보고하지만 실제로 잘라내지는 않습니다.

그러나 이들은 이전에

git remote rm public

rm

이름이 <name> 인 원격을 제거하십시오. 원격에 대한 모든 원격 추적 분기 및 구성 설정이 제거됩니다.

따라서 구성 파일을 직접 편집했는데 이것이 발생하지 않았거나 권한 문제가있을 수 있습니다.

다시 실행하고 어떤 일이 일어나는지보십시오.

개정 로그를 살펴보면 내가 더 많은 "올바른"기술을 제안했음을 알 수 있습니다. 어떤 이유로 든 저장소에서 작업하고 싶지 않은 것입니다.

나는 OP가 일관되지 않은 상태로 트리를 남겨 두어 약간 이상하게 작동하는 것을 의심했으며 git gc 는 cruft 뒤에있는 왼쪽을 수정해야했습니다.

일반적으로 git branch -rd origin/badbranch 는 로컬 추적 브랜치를 누킹하는 데 충분하거나 git push origin :badbranch 는 원격 브랜치를 누킹하는 데 충분하며 일반적으로 git gc 를 호출 할 필요가 없습니다.

출처 : https://stackoverflow.com/questions/1072171/how-do-you-remove-an-invalid-remote-branch-reference-from-git
728x90
반응형