질문 : 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
'개발관련 > Git' 카테고리의 다른 글
Git의 브랜치에서 커밋 삭제하는 방법 (0) | 2021.12.16 |
---|---|
.gitignore for Visual Studio 프로젝트 및 솔루션 (0) | 2021.12.16 |
하나의 명령으로 git 루트 디렉토리를 얻는 방법 (0) | 2021.12.15 |
Xcode 프로젝트에 대한 Git ignore 파일 (0) | 2021.12.15 |
커밋 푸시를 위해 GitHub 자격 증명을 캐시하는 방법 (0) | 2021.12.15 |