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

Tam*_*mpa 62 git github

我需要删除一个主分支,但事实证明它很难.我只想清理那个分支并开始新的.我从开发分支删除.我希望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'
Run Code Online (Sandbox Code Playgroud)

我如何简单地用新鲜的石板开始我的主人?

Von*_*onC 114

正如Matthew Brett 在" 删除您的主分支 "中所述,您需要更改GitHub repo默认分支.

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

单击左侧的"分支"选项卡.屏幕顶部附近有一个"默认分支"下拉列表.

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

确认您要更改默认分支.

现在你可以(从命令行):

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

或者,从2012年开始,您可以直接在GitHub上删除相同的分支:

GitHub删除

这是在我最初写下这个答案一年后的2013年9月宣布的.

对于文档修复,拼写错误等小的更改,或者如果您只是一个步行软件编译器,您可以在浏览器中完成大量工作,而无需将整个存储库克隆到您的计算机.


注意:对于BitBucket,Tum 在评论中报告:

对Bitbucket大致相同

Repo -> Settings -> Repository details -> Main branch
Run Code Online (Sandbox Code Playgroud)

  • @alpha_989 在裸仓库中,要更改默认分支,请设置符号引用:/sf/answers/231141291/ (2认同)
  • 谢谢!Bitbucket大致相同。回购->设置->存储库详细信息->主分支 (2认同)
  • @Tum谢谢。我已将您的评论包含在答案中,以提高知名度。 (2认同)

dav*_*ith 13

要从字面上回答这个问题(因为 GitHub 不在问题标题中),还要注意这篇关于超级用户的帖子编辑:在相关部分复制这里的答案,为了清楚起见在方括号中稍作修改:

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

如果您可以直接访问 repo,您​​只需打开一个 shell [in the bare repo] 目录并使用 good oldgit branch查看当前所在的分支源。要将其更改为另一个分支,您必须使用git symbolic-ref HEAD refs/heads/another-branch.

  • 这应该是公认的答案。也许,@dave_k_smith,您愿意用有关超级用户的帖子的信息来实际扩展您的答案? (3认同)
  • 我在想,如果这是一条评论,一些链接会在评论下保留在一起,而解释会保留作为答案。但重要的是你的想法。我对你的思维过程也很满意,这可以作为答案。 (2认同)

Jac*_*bec 6

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