提问人:Nate 提问时间:2/1/2015 更新时间:12/6/2021 访问量:364133
如何在本地删除分支?
How to remove a branch locally?
问:
我的存储库中有一个 master 和一个 dev 分支。我想从我的计算机中删除 master 分支,这样我就不会意外地提交它(它已经发生了......
这里有关于如何在本地和远程删除分支的问题,但我无法找到如何仅在本地删除分支。
一个答案说使用这个:
git branch -d local_branch_name
但是我试过了,分支仍然显示在 GitHub 应用程序中。
答:
适用于 Windows 的 Github 应用程序显示存储库的所有远程分支。如果您已使用 本地删除了该分支,则远程分支仍存在于 Github 存储库中,并且无论在 Windows Github 应用程序中如何显示,该分支都会出现。$ git branch -d [branch_name]
如果要完全删除分支(也要远程删除),请将上述命令与 .警告:此命令会擦除所有现有分支,并可能导致代码丢失。小心,我不认为这是你想做的。$ git push origin :[name_of_your_new_branch]
但是,每次删除本地分支更改时,远程分支仍将出现在应用程序中。如果您不想继续进行更改,请忽略它并且不要单击,否则您可能会克隆存储库。如果您还有其他问题,请告诉我。
我认为(根据您的评论)我理解您想做什么:您希望存储库的本地副本既没有普通的本地分支,也没有远程跟踪分支,即使您克隆的存储库(github 存储库)有一个您不想从 github 版本中删除的本地分支。master
origin/master
master
你可以通过在本地删除远程跟踪分支来做到这一点,但每次你要求你的 git 将你的本地存储库与远程存储库同步时,它都会回来,因为你的 git 会问他们的 git“你有什么分支”,它说“我有”所以你的 git(重新)为你创建,这样你的仓库就有他们的东西。master
origin/master
要使用命令行界面在本地删除远程跟踪分支,请执行以下操作:
git branch -d -r origin/master
但同样,它只会在重新同步时返回。也可以(使用操作)来解决这个问题,但你最好只是遵守足够的纪律,不要在本地创建或修改。remote.origin.fetch
master
评论
要强制删除本地分支,请执行以下操作:
$ git branch -D <branch-name>
[注]:
-D
是 的快捷方式。--delete --force
评论
据我所知,原始问题,您错误地将提交添加到本地主节点,并且尚未推送该更改。 现在,您想要取消更改,并希望删除本地更改并从远程分支创建新的主分支。
您只需重置更改并从远程服务器重新加载主服务器即可:
git reset --hard origin/master
通过您的标签,我假设您使用的是 Github。为什么不为主分支创建一些分支保护规则呢?这样,即使你试图推动到master,它也会拒绝它。
1) 转到 Github 上存储库的“设置”选项卡。
2) 点击左侧菜单中的“分行”。
3) 点击“添加规则”
4) 输入“master”作为分支模式。
5) 勾选“合并前需要拉取请求审核”
我还建议对你的开发分支做同样的事情。
您需要切换到另一个分支并尝试相同的操作。
git 分支 -d
评论
您可以使用 Git GUI 删除 Windows 上的多个分支:
git branch | grep -v "develop" | grep -v "master" | xargs git branch -D
简单易行。它将删除除您正在处理的所有内容以及“开发”和“master”。
使用以下命令删除分支后:
git branch -d BranchName
要删除远程存储库中不再存在的分支,请使用:
git fetch -p
-p
表示修剪,以从本地存储库中删除远程存储库中不存在的分支。
评论
Deleted branch master (was e8a8e29).