在结帐到另一个分支后仍无法删除本地分支

时间:2019-01-18 22:29:14

标签: git branch git-bash

我正试图删除我的本地分支,并尝试了在此找到的大多数解决方案,即签出到另一个分支,然后运行git branch -D (or -d) <my_branch>。我尝试过,但是仍然出现相同的错误,指出“无法删除在'my_path'处签出的分支'my_branch'

在这种情况下,我如何进入自己:通过执行git worktree add -b branch_name ../project_name develop从我的开发分支中分支出来。然后我意识到我想更改自己的分支名称,因此我首先使用rm- rf删除了整个目录。现在my_path指向一个已删除的目录,所以我不确定现在该怎么做。帮助将不胜感激。我正在使用Git Bash在Windows 7上运行

我尝试过的事情:

  1. 重新启动计算机
  2. 重新安装Git Bash
  3. 检出另一个分支并尝试git branch -dgit branch -D

错误的屏幕截图: git branch delete error (virtualBDD)是我的虚拟环境。您可以忽略它。

2 个答案:

答案 0 :(得分:2)

进行了更多浏览,发现this answer使用git worktree prune删除了(不再存在的)工作树上的信息。这实际上从git worktree list中删除了我的工作树,然后我继续执行git branch -d my_branch。这解决了我的问题。感谢所有提供帮助的人。

答案 1 :(得分:0)

您已经在另一个位置检出了该分支的工作树,并且只有在删除工作树后才能删除该分支。

Git不允许您删除与工作树关联的分支,因为这会使工作树处于无用且损坏的状态。如果要删除分支,则首先需要使用git worktree remove删除给定的工作树(可能与-f一起删除),然后才能删除分支。如果不确定工作树在哪里,可以使用git worktree list来找到它。