我无法删除git上的远程主分支


76

我需要删除一个master分支,但是事实证明这很困难。我只想清理该分支并重新开始。我正在从dev分支中删除。我希望GitHub上的管理员是干净的。

 # git push origin --delete master

> To https://github.com/mymasterb.git  ! [remote rejected] master
> (deletion of the current branch prohibited) error: failed to push some
> refs to 'https://github.com/mymaster.git'

我该如何简单地以全新的方式开始我的主人?


“新鲜石板”是什么意思?您希望主分支完全为空,但您希望所有其他分支仍然存在吗?
林恩(Jon Lin)


如何更改Git远程HEAD以指向除“ master”以外的其他内容的可能重复项。重复,因为既然这样说deletion of the current branch prohibited,很明显必须更改当前分支,这就是公认的答案所解释的。这正是建议的重复项(包括github解决方案)中所解释的内容,原因在于该标签。
Ciro Santilli郝海东冠状病六四事件法轮功

Answers:


130

如Matthew Brett在“删除主分支”中所述,您需要更改GitHub repo默认分支

您需要转到分叉存储库的GitHub页面,然后单击“设置”按钮。

点击左侧的“分支”标签。屏幕顶部附近有一个“默认分支”下拉列表。

从那里,选择占位符(其中占位符是新的默认分支的虚拟名称)。

确认您要更改默认分支。

现在,您可以(从命令行)执行以下操作:

git push origin :master

或者,自2012年起,您可以直接在GitHub上删除同一分支

删除GitHub

声明于2013年9月宣布,也就是我最初写下该答案的一年后。

对于较小的更改(例如文档修订,错别字),或者如果您只是步行的软件编译器,则可以在浏览器中完成很多工作,而无需将整个存储库克隆到计算机上


注意:对于BitBucket,Tum报告中的注释

Bitbucket大致相同

Repo -> Settings -> Repository details -> Main branch

注意:“占位符”是除master以外的任何其他分支的示例。这个想法是将另一个分支定义为Github repo默认分支。
VonC'8

@Tampa我已经编辑了答案,以反映不再存在绿色对勾的事实。
VonC'8

2
@ alpha_989在裸仓库中,要更改默认分支,请设置符号引用:stackoverflow.com/a/3302018/6309
VonC

2
谢谢!Bitbucket大致相同。回购->设置->存储库详细信息->主分支
Tum

2
@Tum谢谢。我已将您的评论包含在答案中,以提高知名度。
VonC

7

从字面上回答这个问题(因为GitHub的是不是在问题的标题),也知道这个帖子了的超级用户。编辑:答案复制在此处的相关部分,为方括号中的清晰度进行了稍微修改:

您被拒绝是因为您正试图删除您的来源当前已“签出”的分支。

如果您可以直接访问该存储库,则可以在[bare repo]目录中打开一个shell,然后使用old oldgit branch命令查看当前分支源。要将其更改为另一个分支,必须使用git symbolic-ref HEAD refs/heads/another-branch


您愿意公开发表评论而不是回答吗?到超级用户的链接很好。
zedfoxus

1
@zedfoxus,我愿意考虑-但主要帖子下方的添加评论框显示“避免在评论中回答问题”。我认为我的回答是对提出的字面问题的回答。但也许我想念你的角度?
dave_k_smith

2
我当时在想,如果这是评论,则某些链接将保留在评论下,而解释将作为答案。但重要的是您的想法。对于您的思考过程,我也很好,也可以将其作为答案。
zedfoxus

2
这应该是公认的答案。也许@dave_k_smith,您是否愿意使用超级用户上的帖子信息来扩大答案?
AkiraAiren

1
有趣,并且比我的“面向github的”答案更通用。已投票。
VonC

4

最快的方法是将默认分支从master切换到另一个 ,您可以从Web界面中删除master分支

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.