当删除远程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-name
和my-branch-name
。
具体来说,我应该使用:
git push origin :my_remote_branch
代替
git push origin :origin/my_remote_branch
至less解决了我的问题,希望能帮助别人。
对我来说问题是,这是我在github上的默认分支。 我更改了默认分支,然后删除操作成功。
希望有助于某人