현재 리포지토리에는 다음과 같은 출력이 있습니다.
$ 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
치다
<name> 아래의 모든 부실 추적 분기를 삭제합니다. 이 오래된 분기는 <name>에서 참조하는 원격 저장소에서 이미 제거되었지만 “remotes / <name>”에서 여전히 로컬로 사용 가능합니다.
–dry-run 옵션을 사용하면 잘라낼 가지를보고하지만 실제로 제거하지는 않습니다.
그러나 이것으로 이전에 정리해야합니다.
git remote rm public
rm
이름이 <name> 인 원격을 제거하십시오. 원격에 대한 모든 원격 추적 분기 및 구성 설정이 제거됩니다.
따라서 구성 파일을 수동으로 편집했을 수 있으며 이것이 발생하지 않았거나 권한 문제가 있습니다.
어쩌면 다시 실행하고 무슨 일이 일어나는지보십시오.
조언 컨텍스트
개정 로그를 살펴보면 어떤 이유로 든 저장소에서 작업하고 싶지 않은 더 “올바른”기술을 제안했습니다.
나는 OP가 나무를 일관성이없는 상태로 남겨두고 뭔가 이상하게 행동하게하고 무언가를 왼쪽 git gc
으로 고치기 위해 무언가를 한 것으로 의심했다 .
일반적으로 git branch -rd origin/badbranch
로컬 추적 분기 git push origin :badbranch
를 핵 또는 원격 분기를 핵을 위해 충분 하며 일반적 으로 전화를 걸 필요 가 없습니다.git gc
답변
당신이해야 할 일은
git fetch -p
원격으로 삭제 된 모든 로컬 브랜치를 제거합니다.
git 1.8.5 이상을 사용하는 경우 자동으로 설정할 수 있습니다
git config fetch.prune true
또는
git config --global fetch.prune true
답변
git push public :master
이것은 master
Kent Fredric이 지적한 원격 지사를 삭제합니다 .
원격 추적 분기를 나열하려면
git branch -r
원격 추적 분기를 삭제하려면
git branch -rd public/master
답변
당신이해야 할 일은
$ git branch -rd origin/whatever
그렇게 간단합니다. 여기에 gc를 호출 할 이유가 없습니다.
답변
git gc --prune=now
당신이 원하는 것이 아닙니다.
git remote prune public
또는 git remote prune origin
# 원격 소스 인 경우
당신이 원하는 것입니다
답변
심판이 포장되었을 때 수락 된 답변이 효과가 없었습니다. 그러나 이것은 다음을 수행합니다.
$ git remote add public http://anything.com/bogus.git
$ git remote rm public
답변
제 경우에는에 저장된 항목을 삭제하려고했습니다 .git/packed-refs
. 이 일반 텍스트 파일을 편집 git br -D
하고 터치하는 방법을 모르는 항목을 삭제할 수 있습니다 (최소한 버전 1.7.9.5 이상).
이 솔루션을 여기에서 찾았습니다 : https://stackoverflow.com/a/11050880/1695680