如何强制删除远程分支在GitHub上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何强制删除远程分支在GitHub上相关的知识,希望对你有一定的参考价值。

强制删除远程分支在Github的详细步骤如下:
一:1、git diff 对比文件的差异
2、git branch 列出所有分支
3、git log 显示提交记录
二:分支
1、git brach 分支名 创建分支
2、git checkout 分支名 切换分支
三:提交
1、git add 跟踪新文件或者已有文件的改动,或者用来解决冲突
2、git commit 把文件从stage提交到branch
四:删除
1、git rm 文件名 不但从stage中删除,同时删除物理文件
参考技术A git diff 对比文件的差异

git branch 列出所有分支

git log 显示提交记录

分支
git brach 分支名 创建分支
git checkout 分支名 切换分支

提交
git add 跟踪新文件或者已有文件的改动,或者用来解决冲突
git commit 把文件从stage提交到branch

删除
git rm 文件名 不但从stage中删除,同时删除物理文件本回答被提问者采纳

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

【中文标题】我无法在 git 上删除远程 master 分支【英文标题】:I can't delete a remote master branch on git 【发布时间】:2012-08-25 21:10:38 【问题描述】:

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

 # 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'

我如何简单地从新开始我的主人?

【问题讨论】:

你所说的“新鲜的石板”是什么意思?您希望您的主分支完全为空,但您希望所有其他分支仍然存在? 可能跨站重复:superuser.com/questions/294407/cant-remove-remote-branch-in-git How do I change a Git remote HEAD to point to something besides "master" 的可能副本。重复,因为它说 deletion of the current branch prohibited 很明显,必须更改当前分支,这就是接受的答案所解释的。这正是建议的副本中所解释的内容,包括由于标签而导致的 github 解决方案。 【参考方案1】:

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

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

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

【讨论】:

@zedfoxus,我愿意考虑 - 但主帖下方的添加评论框显示“避免在 cmets 中回答问题”。我认为我的答案是对所提出的字面问题的回答。但也许我错过了你的角度? 我在想,如果这是一条评论,那么一些链接将在 cmets 下保留在一起,而解释将作为答案保留。但重要的是你的想法。我对你的思考过程也很好,这可以作为一个答案。 这应该是公认的答案。也许,@dave_k_smith,你愿意用关于超级用户的帖子信息来扩展你的答案? 有趣,而且比我的“面向 github”的答案更通用。赞成。 这就是答案【参考方案2】:

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

【讨论】:

【参考方案3】:

正如 Matthew Brett 在“Deleting your master branch”中所解释的,您需要更改 GitHub 存储库默认分支

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

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

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

确认您要更改默认分支。

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

git push origin :master

或者,从 2012 年开始,您可以delete that same branch directly on GitHub:

那是announced in Sept. 2013,在我最初写下这个答案一年之后。

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


注意:对于 BitBucket,Tum 报告 in the comments:

Bitbucket 也差不多

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

【讨论】:

注意:“占位符”是除 master 之外的任何其他分支的示例。这个想法是将 another 分支定义为 Github repo 默认分支。 @Tampa 我已经编辑了我的答案,以反映不再有绿色勾号的事实。 @alpha_989 在裸仓库中,要更改默认分支,请设置符号引用:***.com/a/3302018/6309 谢谢! Bitbucket 也差不多。回购 -> 设置 -> 存储库详细信息 -> 主分支 @Tum 谢谢。我已将您的评论包含在答案中以提高知名度。

以上是关于如何强制删除远程分支在GitHub上的主要内容,如果未能解决你的问题,请参考以下文章

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

github创建分支

如何在 Github Desktop 上删除本地分支?

Git 本地新建,删除分支并推送到远程仓库

在本地创建分支并发布到远程仓库

git 命令行-推送分支到远程