$ git branch -a
* SocialAct
master
remotes/origin/HEAD -> origin/master
remotes/origin/SocialAct
remotes/origin/social
我想删除远程分支“remotes / origin / social”,并应用了以下命令:
$ git branch -d -r origin/social
Deleted remote branch origin/social (was 26f6f61).
但我不知道如何远程进行这些更改,以便从原点删除分支,每个人都可以看到更改。我尝试了git push,但这不起作用
任何帮助。
答案 0 :(得分:45)
我有这个错误(来自上面):
感谢。其实我注意到了这一点 解决方案并尝试过。但是这个 给出以下错误... $ git push origin:heads / socail输入密码 键'/h/.ssh/id_rsa':错误: 无法推动不合格 destination:heads / socail 目的地refspec既不匹配 现有的遥控器也没有开始 与refs /,我们无法猜测 基于源ref的前缀。 错误:无法将某些引用推送到 'git@xxxxxx.git' - 2010年5月24日的Himel 9:37
似乎对我是否实际远程删除它感到困惑。我像这样工作:
git push origin HEAD:branch_to_delete
git push origin :branch_to_delete
这对我有用。使用: git version 1.7.3.1.msysgit.0 。
答案 1 :(得分:7)
git push origin :social
但是你需要在之前或之后在本地删除。
答案 2 :(得分:7)
正如@Josh在Nathan McDaniel's Answer的评论中所提到的,这可能是由于远程存储库中不再存在分支。这会导致git branch -a
仍显示origin
下的分支(或者您为此特定远程命名的任何内容),但删除远程存储库上的分支是不可能的,因为它不再存在于远程上。这可能是因为从另一台计算机上删除了远程分支(除了git pull
和git fetch
之外没有删除对已从远程存储库中删除的远程分支的引用)。
只需使用git remote prune
删除已从远程存储库中删除的所有远程跟踪分支:
git remote prune REMOTENAME
例如,如果您的远程名称是origin
(可能),则上述命令如下所示:
git remote prune origin
来自git
提供的文档:
<强>
git remote prune [-n | --dry-run] <name>
强>删除
<name>
下的所有陈旧远程跟踪分支。这些陈旧的分支已从<name>
引用的远程存储库中删除,但仍然在&#34;远程/&#34;中本地可用。使用
--dry-run
选项,报告将修剪哪些分支,但实际上不修剪它们。
答案 3 :(得分:2)
以下命令将删除远程跟踪分支,但不删除远程
上存在的分支$ git branch -d -r origin/social
Deleted remote branch origin/social (was 26f6f61).
删除远程分支:
git push origin :social
这将自动删除远程跟踪分支,即远程跟踪/来源/社交。
答案 4 :(得分:-3)
在here上详细描述了删除远程分支。