删除远程git分支时"错误:无法推送到不合格的目的地"

Hug*_*ugo 137 git

我正在尝试删除远程git分支

git push origin :my_remote_branch
Run Code Online (Sandbox Code Playgroud)

得到:

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'
Run Code Online (Sandbox Code Playgroud)

这些是我目前的分支机构

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
Run Code Online (Sandbox Code Playgroud)

关于如何摆脱这个分支的任何想法将不胜感激.

Jan*_*dec 266

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 fetch -p origin`为我修好了.多谢. (11认同)

Hug*_*ugo 56

发现问题清理旧的远程git分支,这就行了

git branch -r -d origin/my_remote_branch
Run Code Online (Sandbox Code Playgroud)

  • @PatrickDesjardins正是`git push origin:my_remote_branch`从远程删除分支,`git branch -r -d origin/my_remote_branch`将其从我的本地远程分支列表中删除 (2认同)

Mat*_*hew 11

我试图删除已经删除的远程分支时遇到了这个问题.所需要的只是修剪:

git remote prune origin
Run Code Online (Sandbox Code Playgroud)


Paw*_*ari 5

尝试以下两个选项强制删除远程分支

选项1

get push origin --delete <branchName>
Run Code Online (Sandbox Code Playgroud)

选项 2

git fetch -p origin
git branch -r -d origin/<branchName>
Run Code Online (Sandbox Code Playgroud)