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

时间:2012-04-24 05:59:51

标签: 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

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

9 个答案:

答案 0 :(得分:263)

本地存储库中存在refs/remotes/origin/my_remote_branch这一事实并不意味着refs/heads/my_remote_branch远程存储库中存在origin

如果git fetch -p origin已被删除,refs/remotes/origin/my_remote_branch会使-p消失。 {{1}}选项告诉fetch删除相应遥控器中不再存在的任何跟踪分支;默认情况下它们会被保留。

答案 1 :(得分:55)

找到问题cleaning up old remote git branches,这就是诀窍

git branch -r -d origin/my_remote_branch

答案 2 :(得分:11)

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

git remote prune origin

答案 3 :(得分:4)

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

选项1

get push origin --delete <branchName>

选项2

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

答案 4 :(得分:3)

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

答案 5 :(得分:1)

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

希望对某人有帮助

答案 6 :(得分:0)

出现同样的问题,我手动编辑了./.git/config文件,其中包括:

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

导致:error: src refspec branchName matches more than one.我通过运行$git tag -d branchName来修复此问题。 之后,我能够将新分支推向上游。

答案 7 :(得分:0)

我有类似的问题。 首先参加了这个讨论,但是在看到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

这至少解决了我的问题,希望它也能帮助别人。

答案 8 :(得分:0)

这对我有用: 我在github UI上创建了远程分支,然后推送了具有相同名称的本地分支。尝试以防其他方式不起作用。 其他方式是在本地创建一个新分支并推送一个空分支,然后樱桃选择你的提交并再次推送到你的遥控器。

相关问题