我的代码库中有一个主分支和一个开发分支。我想从我的电脑中删除主分支,以免意外提交到它(这种情况已经发生过……)。
这里有一些关于如何删除本地和远程分支的问题,但我没有找到如何仅删除本地分支的方法。
有一个答案建议使用以下命令:
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
Windows版的Github应用程序显示存储库的所有远程分支。如果您使用$ git branch -d [branch_name]
本地删除了分支,则远程分支仍然存在于您的Github存储库中,并且无论如何都会在Windows Github应用程序中显示。
如果您想完全删除该分支(包括远程分支),请将上述命令与$ git push origin :[name_of_your_new_branch]
结合使用。警告:此命令会删除所有现有分支,可能会导致代码丢失。请小心,我认为这不是您想要做的。
但是,每次您删除本地分支更改时,远程分支仍将出现在应用程序中。如果您不想继续进行更改,请忽略它并不要单击,否则您可能会克隆存储库。如果您还有任何问题,请告诉我。
使用以下命令删除分支后:
git branch -d BranchName
要删除远程存储库中不再存在的分支,请使用:
git fetch -p
-p
表示 prune,用于从本地仓库中删除在远程不存在的分支。
您需要切换到另一个分支并尝试相同的操作。
git branch -d
git branch | grep -v "develop" | grep -v "master" | xargs git branch -D
简单易懂。它将删除除你正在工作的“develop”和“master”之外的所有内容。
我还建议您为dev分支执行相同操作。1)转到Github上您的存储库的“设置”选项卡。
2)单击左侧菜单中的“分支”。
3)点击“添加规则”
4)为分支模式输入“master”。
5)勾选“要求在合并之前进行拉取请求审查”
Deleted branch master (was e8a8e29).
- Nate