无法删除无意中创建的远程分支

Him*_*mel 29 git version-control

$ git branch -a
* SocialAct
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/SocialAct
  remotes/origin/social
Run Code Online (Sandbox Code Playgroud)

我想删除远程分支"remotes/origin/social",并应用了folloing命令:

$ git branch -d -r origin/social
Deleted remote branch origin/social (was 26f6f61).
Run Code Online (Sandbox Code Playgroud)

但我不知道如何远程进行这些更改,以便从原点删除分支,每个人都可以看到更改.我尝试了git push,但这不起作用

任何帮助.

Nat*_*iel 45

我有这个错误(从上面):

谢谢.实际上我注意到这个解决方案,并在之前尝试 但这会产生以下错误... $ git push origin:heads/socail输入密钥'/h/.ssh/id_rsa'的密码:错误:无法推送到不合格的目的地:heads/socail目标refspec既不匹配现有的ref在远程也不以refs /开头,我们无法根据源ref猜测前缀.错误:未能将一些参考文献推送到'git@xxxxxx.git' - Himel 2010年5月24日9:37

似乎对我是否实际上已经远程删除它感到困惑.我像这样工作:

git push origin HEAD:branch_to_delete

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

这对我有用.使用:git版本1.7.3.1.msysgit.0.

  • 看起来分支已被删除.git pull不会删除远程删除的分支,你必须使用prune:git remote prune origin - http://stay-calm.blogspot.com/2009/02/git-prune-to-remove-old-remote-tracking html的 (44认同)
  • 我上面的评论应该是这里评价最高的答案.当然,内森的方法有效,但它隐藏了真正的错误. (4认同)

Ark*_*nez 7

git push origin :social
但是你需要在之前或之后在本地删除.


0b1*_*011 7

正如@Josh在对Nathan McDaniel的答案的评论中所提到,这可能是由于远程存储库中不再存在分支.这导致git branch -a仍然显示分支origin(或者您为此特定远程命名的任何内容),但删除远程存储库上的分支是不可能的,因为它不再存在于远程上.这可能是从其他计算机删除遥控器上的分支(上的事实,导致顶部git pullgit fetch不删除对已经从远程仓库删除远程分支机构).

修复

只需删除已从远程存储库中删除的所有远程跟踪分支git remote prune:

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

例如,如果您的遥控器名称是origin(可能),则上述命令如下所示:

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

从提供的文件git:

git remote prune [-n | --dry-run] <name>

删除所有过时的远程跟踪分支<name>.这些陈旧的分支已经从引用的远程存储库中删除<name>,但仍然在"远程/"中本地可用.

使用--dry-run选项,报告将修剪哪些分支,但实际上不修剪它们.


Nou*_*him -3

此处详细描述了删除远程分支。