我的存储库中有一个master和一个dev分支。我想从我的计算机中删除主分支,这样我就不会意外地承诺它(它已经发生了......)。
这里有关于如何远程删除本地和分支的问题,但我还没有找到如何只在本地删除分支。
一个答案说要用这个:
git branch -d local_branch_name
但是我试过了,分支仍然显示在GitHub应用程序中。
答案 0 :(得分:91)
我认为(根据您的意见)我明白您想要做什么:您希望您的本地存储库副本既没有普通的本地分支master
,也没有远程跟踪分支origin/master
,即使您克隆的存储库(github one)有一个本地分支master
,您不希望从github版本中删除。
你可以通过在本地删除远程跟踪分支来实现这一点,但每当你要求你的git将你的本地存储库与远程存储库同步时它就会回来,因为你的git要求他们的git"什么分支你有"它说"我有master
"所以你的git(re)为你创建了origin/master
,这样你的存储库就可以拥有它们所拥有的。
使用命令行界面在本地删除远程跟踪分支:
git branch -d -r origin/master
但同样,它将重新进行重新同步。 也有可能打败这种情况(使用remote.origin.fetch
操纵),但你可能最好只是受到足够的纪律处分,不能在本地创建或修改master
。
答案 1 :(得分:62)
$ git branch -D <branch_name>
[注意]:
"-D"
是强制删除选项。
答案 2 :(得分:11)
Windows的Github应用程序显示了存储库的所有远程分支。如果您使用$ git branch -d [branch_name]
在本地删除了分支,则远程分支仍然存在于您的Github存储库中,并且无论在Windows Github应用程序中都会出现。
如果要完全删除分支(远程也是如此),请将上述命令与$ git push origin :[name_of_your_new_branch]
结合使用。 警告:此命令会清除所有现有分支,并可能导致代码丢失。小心,我不认为这是你想要做的。
但是每次删除本地分支更改时,远程分支仍将出现在应用程序中。如果您不想继续进行更改,请忽略它并且不要单击,否则您可以克隆存储库。如果您还有其他问题,请告诉我们。
答案 3 :(得分:8)
据我了解的原始问题, 您误将提交内容添加到了本地主机 并没有推动这一变化。 现在,您要取消更改,并希望删除本地更改,并从远程分支中创建一个新的master分支。
您可以重置更改并从远程服务器重新加载主服务器:
git reset --hard origin/master
答案 4 :(得分:2)
删除分支后使用:
git branch -d BranchName
要删除远程存储库中不再存在的分支,请使用:
git fetch -p
-p
表示修剪,从本地仓库中删除远程仓库中不存在的分支。
答案 5 :(得分:1)
git 分支 | grep -v "开发" | grep -v "主人" | xargs git branch -D
简单易行。它将删除除您正在处理和“开发”和“掌握”之外的所有内容。
答案 6 :(得分:0)
通过您的标签,我假设您使用的是Github。为什么不为您的主分支创建一些分支保护规则?这样,即使您确实尝试推动掌握,它也会拒绝它。
1)转到Github上仓库的“设置”标签。
2)单击左侧菜单中的“分支”。
3)点击“添加规则”
4)输入“主版”作为分支图案。
5)选中“在合并之前需要拉动请求评论”
我还建议您为dev分支做同样的事情。
答案 7 :(得分:0)
您需要切换到另一个分支并尝试相同的操作。
git branch -d
答案 8 :(得分:0)