code

원격 Git 분기를 삭제할 때 "오류: 정규화되지 않은 대상으로 푸시할 수 없습니다"

starcafe 2023. 8. 26. 12:00
반응형

원격 Git 분기를 삭제할 때 "오류: 정규화되지 않은 대상으로 푸시할 수 없습니다"

원격 Git 분기를 삭제하려고 합니다.

git push origin :my_remote_branch

그리고 얻는 것:

error: unable to push to unqualified destination: my_remote_branch
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@example.com:/myrepo'

이것들은 나의 현재 지점들입니다.

git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/my_remote_branch

git branch -r --merged
  origin/HEAD -> origin/master
  origin/develop
  origin/master

제가 이 지점을 어떻게 없앨 수 있는지에 대한 아이디어가 있으면 감사하겠습니다.

사실은refs/remotes/origin/my_remote_branch로컬 저장소에 존재한다고 해서refs/heads/my_remote_branch에 존재합니다.origin원격 저장소

git fetch -p origin만들기 위해서refs/remotes/origin/my_remote_branch이미 원본에서 삭제된 경우 사라집니다.-p옵션은 해당 원격에 더 이상 존재하지 않는 추적 분기를 삭제하도록 fetch에 지시합니다. 기본적으로 이들 분기는 주변에 보관됩니다.

오래된 원격 깃 가지를 정리하는 문제를 찾았는데 이것이 해결되었습니다.

git branch -r -d origin/my_remote_branch

이미 삭제된 원격 지점을 삭제하려고 할 때 이 문제를 발견했습니다.필요한 것은 가지치기뿐이었습니다.

git remote prune origin

원격 분기를 강제로 삭제하는 두 가지 옵션을 사용해 보십시오.

옵션 1

get push origin --delete <branchName>

옵션 2

git fetch -p origin
git branch -r -d origin/<branchName>
git branch -r -d origin/my_remote_branch

제게는 충분하지 않았습니다.분기를 제거하기 위해 서버로 이동하여 Git 디렉토리(위험하고 보기 흉함)로 직접 작업해야 하기 전에:

ssh mygitserver
su - git
cd /home/git/repositories/my_remote_branch.git/
git  --git-dir=. --work-tree=/tmp/ branch -D my_remote_branch

저에게 문제는 이것이 github의 기본 브랜치라는 것이었습니다.기본 분기를 변경한 후 삭제 작업에 성공했습니다.

누군가에게 도움이 되길 바랍니다.

저도 비슷한 문제가 있어요.처음에는 이 토론에 참여했지만, https://stackoverflow.com/a/32147743/4209849 을 보기 전까지는 문제를 해결할 수 없었습니다.

그것은 단순히 구별하는 것에 대한 팁을 덧붙입니다.origin/my-branch-name그리고.my-branch-name.

구체적으로 말하자면, 저는 다음을 사용해야 합니다.

git push origin :my_remote_branch

대신에

git push origin :origin/my_remote_branch

이것은 적어도 제 문제를 해결했습니다, 다른 사람들에게도 도움이 되기를 바랍니다.

동일한 문제가 발생한 경우 수동으로 편집했습니다../.git/config포함할 파일:

[branch "branchName"]
remote = origin
merge = refs/heads/branchName

그 결과는 다음과 같습니다.error: src refspec branchName matches more than one.이것은 내가 달려서 고친 것입니다.$git tag -d branchName그 후에 저는 새로운 지점을 상류로 밀어 올릴 수 있었습니다.

이것은 저에게 효과가 있었습니다. 저는 github UI에 원격 브랜치를 만든 다음 같은 이름을 가진 제 로컬 브랜치를 푸시했습니다.다른 방법이 통하지 않을 경우를 대비해서 시도해 보세요.다른 방법으로는 새 분기를 로컬로 만들고 빈 분기를 밀어넣은 다음 나중에 커밋을 선택하고 원격으로 다시 밀어넣는 것입니다.

언급URL : https://stackoverflow.com/questions/10292480/when-deleting-remote-git-branch-error-unable-to-push-to-unqualified-destinatio

반응형