如何在本地删除分支?

时间:2015-02-01 02:03:30

标签: git github

我的存储库中有一个master和一个dev分支。我想从我的计算机中删除主分支,这样我就不会意外地承诺它(它已经发生了......)。

这里有关于如何远程删除本地分支的问题,但我还没有找到如何只在本地删除分支。

一个答案说要用这个:

git branch -d local_branch_name

但是我试过了,分支仍然显示在GitHub应用程序中。

9 个答案:

答案 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)

您可以使用 Git GUI 在Windows上删除多个分支:

  1. 转到您的项目文件夹
  2. 打开Git Gui: enter image description here
  3. 点击“分支”: enter image description here
  4. 现在选择“删除”: enter image description here
  5. 如果您要删除所有分支(除了是否合并分支),请选中“始终(不执行合并检查)” enter image description here