当删除远程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

如果git fetch -p origin已经被删除了, git fetch -p origin会让refs/remotes/origin/my_remote_branch消失。 -p选项指示提取删除相应遥控器中不存在的任何跟踪分支; 默认情况下,他们保持在附近。

发现问题清理旧的远程git分支 ,这个伎俩

 git branch -r -d origin/my_remote_branch 

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

 git remote prune origin 
 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 

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

选项1

 get push origin --delete <branchName> 

选项2

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

有这个相同的问题,我手动编辑我的./.git/config文件,包括:

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

其中导致: error: src refspec branchName matches more than one. 我通过运行$git tag -d branchName 。 之后,我能够推动新的分支上游。

我有类似的问题。 首先去这个讨论,但是我不能解决这个问题,直到我看到https://stackoverflow.com/a/32147743/4209849

它只是添加一个提示区分origin/my-branch-namemy-branch-name

具体来说,我应该使用:

 git push origin :my_remote_branch 

代替

 git push origin :origin/my_remote_branch 

至less解决了我的问题,希望能帮助别人。

对我来说问题是,这是我在github上的默认分支。 我更改了默认分支,然后删除操作成功。

希望有助于某人