无法删除 git 中的远程分支

无法删除 git 中的远程分支

我正在尝试使用 git 删除远程分支:

rpinson@rpinson:~/dev/charismanie$ git remote show origin 
* remote origin
  Fetch URL: [email protected]:raphink/Charismanie.git
  Push  URL: [email protected]:raphink/Charismanie.git
  HEAD branch: xetex
  Remote branches:
    master tracked
    xetex  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
rpinson@rpinson:~/dev/charismanie$ git push origin :xetex
remote: error: refusing to delete the current branch: refs/heads/xetex
To [email protected]:raphink/Charismanie.git
 ! [remote rejected] xetex (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:raphink/Charismanie.git'

有什么方法可以将这个分支从“远程分支”列表中删除吗?

答案1

该分支被设置为 github 上的默认分支,以防止被删除。

在 github 上,我进入项目中的“管理”,将默认分支重置为“master”,然后我就可以删除 xetex 分支。

答案2

对于 BitBucket 来说它的价值:

  • 点击左侧菜单中的“设置”
  • 在“存储库详细信息”下找到“主分支”下拉菜单
  • 选择要删除的分支以外的其他分支

“分支管理”部分下还有一个防止删除分支的选项,但您必须先主动设置该选项。

答案3

如果您想以编程方式执行此操作(通过在浏览器中访问每个存储库来重新配置大量存储库是不切实际的),default_branch可以通过 GitHub 的 REST API 来操作配置(来源)。

您既可以使用 GitHub 的官方ghCLI,也可以使用较旧的非官方hubCLI;它们都支持api子命令(您甚至可以使用curl,但必须自己处理身份验证):

$ gh api --method PATCH -f default_branch=NEW_NAME 'repos/{owner}/{repo}'

当然,对于单个存储库来说,通过浏览器操作更容易。这里有一些详细的说明。

相关内容