我的存储库中有一个主分支和一个开发分支。我想从我的计算机中删除 master 分支,这样我就不会意外地提交它(它已经发生了......)。
这里有关于如何在本地删除分支和远程的问题,但我一直无法找到如何仅在本地删除分支。
一个答案说用这个:
git branch -d local_branch_name
但我尝试过,分支仍然显示在 GitHub 应用程序中。
$ git branch -D <branch-name>
[注意]:
-D
是 --delete --force
的快捷方式。
我认为(根据您的评论)我理解您想要做什么:您希望存储库的本地副本既没有普通的本地分支
master
,也没有远程跟踪分支origin/master
,甚至尽管您克隆的存储库(github 存储库)有一个本地分支 master
,但您不希望从 github 版本中删除该分支。
您可以通过在本地删除远程跟踪分支来做到这一点,但每次您要求 git 将本地存储库与远程存储库同步时,它都会简单地返回,因为您的 git 会询问他们的 git“您有哪些分支”并且它说“我有
master
”,所以你的 git 为你(重新)创建 origin/master
,这样你的存储库就有了他们的存储库。
要使用命令行界面在本地删除远程跟踪分支:
git branch -d -r origin/master
但同样,它只会在重新同步时返回。 也可以克服这个问题(使用 remote.origin.fetch
操作),但你最好遵守足够的纪律,不要在本地创建或修改
master
。并且还没有推动这一变化。 现在您想要取消更改并希望删除本地更改并从远程创建一个新的主分支。 您只需重置更改并从远程服务器重新加载主版本:
git reset --hard origin/master
git branch -d BranchName
要删除远程存储库中不再存在的分支,请使用:
git fetch -p
-p
表示修剪,从本地存储库中删除远程中不存在的分支。
$ git branch -d [branch_name]
在本地删除了分支,则远程分支仍然存在于您的 Github 存储库中,并且无论在 Windows Github 应用程序中都会出现。
如果您想完全删除分支(也可以远程删除),请结合使用上述命令和
$ git push origin :[name_of_your_new_branch]
。
警告:此命令会删除所有现有分支,并可能导致代码丢失。小心,我不认为这就是你想要做的。 但是,每次删除本地分支更改时,远程分支仍然会出现在应用程序中。如果您不想继续进行更改,请忽略它并且不要单击,否则您可能会克隆存储库。如果您还有任何疑问,请告诉我。
1) 转到 Github 上存储库的“设置”选项卡。
2) 单击左侧菜单上的“分支”。
3) 单击“添加规则”
4) 输入“master”作为分支模式。
5) 勾选“合并前需要进行拉取请求审查”
我还建议对你的开发分支做同样的事情。
简单又容易。它将删除除您正在处理的所有内容以及“开发”和“掌握”之外的所有内容。
git分支-d