首页 > 解决方案 > 本地分支未在 git 中删除

问题描述

我想从 git 中删除本地分支。它显示删除消息,但实际上它没有被删除。代码编写如下: 我不知道这张图片发生了什么。请帮我从本地 git 中删除 remove-ipsum

git branch -a
git checkout master
git branch -d remove-ipsum

它将删除消息显示为:Deleted branch remove-ipsum (was 870afb1)。

git branch -a

但仍显示此分支。

为什么会这样?任何解决方案?

标签: gitgithub

解决方案


总之:没问题解决,你的本地分支已经删除成功。


为什么?

由于您收到了删除确认消息,我们现在知道该分支的本地版本已成功删除。

git branch -a不仅显示本地分支,它还列出远程跟踪分支。因此,除非分支从未被推/拉,否则它有一个尚未被修剪的远程跟踪对应项。


那么还剩下什么要做呢?

出于充分的理由,该分支仍然远程存在,或者您也可以使用以下命令将其删除

git push <remoteName> :<branchName>

(一定要注意“ :”之前的空格,这与 有很大不同<remoteName>:<branchName>

或(完成的替代语法,但它们的效果是相同的)

git push --delete <remoteName> <branchName>

但是警告,因为这一步没有确认:无论合并与否,它都会删除分支。


最后

此时,分支的本地和远程版本都消失了,您仍然会在git branch -a输出中显示该分支。什么?!为什么?

因为正如我们上面提到的,作为远程​​分支的本地副本(为了离线比较),远程跟踪分支既没有被您的第一个命令删除,也没有被我建议给您的远程命令删除分支。

因此,要从远程跟踪分支列表中删除它,现在您已经删除了远程对应项,您可以

git fetch --prune

它不会再出现在git branch -a输出中。


推荐阅读