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

Git 无法删除无意中创建的远程分支,git,version-control,Git,Version Control,我想删除远程分支“remotes/origin/social”,并应用以下命令: $ git branch -a * SocialAct master remotes/origin/HEAD -> origin/master remotes/origin/SocialAct remotes/origin/social 但我不知道如何远程带来这些更改,以便从源位置删除分支,并且每个人都可以看到这些更改。我试过git push,但不起作用 任何帮助。删除远程分支的详细说明参见

我想删除远程分支“remotes/origin/social”,并应用以下命令:

$ git branch -a
* SocialAct
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/SocialAct
  remotes/origin/social
但我不知道如何远程带来这些更改,以便从源位置删除分支,并且每个人都可以看到这些更改。我试过git push,但不起作用


任何帮助。

删除远程分支的详细说明参见。

git push origin:social

但是您也需要在本地删除,在之前或之后。

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


谢谢。实际上我注意到了这一点 解决方案,并尝试更早。但是这个 给出以下错误…$git推送 来源:heads/socail输入密码短语 对于密钥“/h/.ssh/id_rsa”:错误: 无法推送至不合格 目的地:头/肩 目标refspec与 远程nor上的现有ref开始 使用refs/,我们无法猜测 基于源引用的前缀。 错误:无法将某些引用推送到 'git@xxxxxx.git-Himel 5月24日10时 9:37

它似乎对我是否真的远程删除了它感到困惑。我是这样做的:

$ git branch -d -r origin/social
Deleted remote branch origin/social (was 26f6f61).
这对我很管用。使用:git version 1.7.3.1.msysgit.0。

正如在的评论中提到的,这可能是由于远程存储库中不再存在分支。这会导致
git branch-a
仍在
origin
下显示分支(或您命名此特定远程对象的名称),但无法删除远程存储库中的分支,因为它在远程存储库中已不存在。这可能是由于从另一台计算机上删除远程分支造成的(除此之外,
git pull
git fetch
不会删除对已从远程存储库中删除的远程分支的引用)

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

git push origin HEAD:branch_to_delete

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

git remote prune REMOTENAME
从随git提供的文档中:

git远程修剪[-n|--dry run]

删除
下所有过时的远程跟踪分支。这些过时的分支已从
引用的远程存储库中删除,但仍在“remotes/”中本地可用

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


下面的命令将删除远程跟踪分支,但不会删除远程跟踪上存在的分支

git remote prune origin
要删除远程分支,请执行以下操作:

$ git branch -d -r origin/social
Deleted remote branch origin/social (was 26f6f61).

这将自动删除远程跟踪分支,即remotes/origin/social。

谢谢。事实上,我注意到了这个解决方案,并尝试了早些时候。但这会产生以下错误…$git push origin:heads/socail输入密钥“/h/.ssh/id_rsa”的密码短语:错误:无法推送到不合格的目标:heads/socail目标refspec既不匹配远程上的现有ref,也不以refs/开头,我们无法根据源引用猜测前缀。错误:无法将某些引用推送到'git@xxxxxx.git'我首先在本地删除,使用命令:$git branch-d-r origin/social,或者,我做错了吗?无论您是否在本地删除,您是否注意到您的上一个示例有一个拼写错误socail/social?是的,有一个拼写错误,实际上是我在这里写的。但在实际的控制台中,我正确地应用了它。上次我必须这样做时,它完全是这样的,在任何情况下,错误消息看起来分支不再存在,您是否尝试过克隆回购协议并查看分支是否仍然存在?看起来分支已经被删除。git pull不会删除远程删除的分支,您必须使用prune:git remote prune origin-我上面的评论应该是这里评级最高的答案。内森的方法当然有效,但它隐藏了真正的错误。
git push origin  :social