如何在本地删除分支?

How to remove a branch locally?

我的存储库中有一个 master 和一个 dev 分支。我想从我的计算机中删除 master 分支,这样我就不会不小心提交给它(它发生了......)。

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

一个回答说要用这个:

git branch -d local_branch_name

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

Github Windows 的应用程序显示了存储库的所有远程分支。如果您使用 $ git branch -d [branch_name] 在本地删除了分支,则远程分支仍然存在于您的 Github 存储库中,并且无论在 Windows Github 应用程序中都会出现。

如果要完全删除分支(也可以远程删除),请结合使用上述命令和 $ git push origin :[name_of_your_new_branch]警告:此命令会删除所有现有分支并可能导致代码丢失。小心,我不认为这是你想要做的。

但是每次删除本地分支更改时,远程分支仍会出现在应用程序中。如果您不想继续进行更改,请忽略它并且不要单击它,否则您可能会克隆存储库。如果您还有其他问题,请告诉我。

我想(根据您的评论)我理解您想做什么:您希望存储库的本地副本既没有普通的本地分支 master 也没有 远程跟踪分支 origin/master,即使您克隆的存储库 — github — 有一个您 没有的本地分支 master 想从 git 集线器版本中删除。

您可以通过在本地删除远程跟踪分支来完成此操作,但每次您要求 git 将本地存储库与远程存储库同步时,它都会简单地返回,因为您的 git 询问他们的 git "what branches do you have" 并且它说 "I have master" 所以你的 git (重新)为你创建 origin/master ,这样你的存储库就有他们的。

要使用命令行界面在本地删除您的远程跟踪分支:

git branch -d -r origin/master

但同样,它只会在重新同步时恢复。 也有可能解决这个问题(使用 remote.origin.fetch 操作),但你最好遵守纪律,不要在本地创建或修改 master .

强制删除本地分支:

$ git branch -D <branch-name>

[注意]:

-D--delete --force 的快捷方式。


据我所知,原来的问题, 你错误地将提交添加到本地 master 并且尚未推动该更改。 现在您想取消更改并希望删除本地更改并从远程创建一个新的主分支。

您只需重置您的更改并从远程服务器重新加载母版:

git reset --hard origin/master

根据你的标签,我假设你使用 Github。为什么不为您的主分支创建一些分支保护规则?这样即使你尝试推送到 master,它也会拒绝它。

1) Go to the 'Settings' tab of your repo on Github.

2) Click on 'Branches' on the left side-menu.

3) Click 'Add rule'

4) Enter 'master' for a branch pattern.

5) Check off 'Require pull request reviews before merging'

我还建议对您的开发分支执行相同的操作。

您需要切换到另一个分支并尝试相同的方法。

git 分支-d

您可以使用 Git GUI:

删除 windows 上的多个分支
  1. 转到您的项目文件夹
  2. 打开Git贵:
  3. 点击'Branch':
  4. 现在选择'Delete':
  5. 如果你想删除所有的分支,除了它们合并与否之外,然后检查'Always (Do not perform merge checks)'
git branch | grep -v "develop" | grep -v "master" | xargs git branch -D

简单易行。它将删除除您正在处理的所有内容以及“开发”和“大师”。

删除分支后使用:

git branch -d BranchName

要删除远程存储库中不再存在的分支,请使用:

git fetch -p

-p 表示修剪,从本地存储库中删除远程不存在的分支。