即使在签出到另一个分支后也无法删除本地分支

Alp*_*rot 12 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 -d尝试git branch -D

错误截图: git分支删除错误 (virtualBDD) 是我的虚拟环境。你可以忽略这一点。

Alp*_*rot 14

进行了更多浏览,发现了这个答案,用于git worktree prune删除不再存在的(非锁定)工作树上的信息。这基本上删除了我的工作树git worktree list,然后我继续做git branch -d my_branch。这解决了我的问题。感谢所有提供帮助的人。


小智 13

也有可能当前正在进行变基,或者拒绝删除的分支中的樱桃选择尚未解决。在这种情况下,您将必须执行--abort以下任何流程:

git rebase --abort
Run Code Online (Sandbox Code Playgroud)

然后使用git branch查看当前分支(您可能会移回到拒绝删除的分支,并且可能是变基的起点)并git checkout <branchname>切换分支。


yon*_*ran 10

我今天遇到了这个问题,所以我查看了抛出错误的位置。\xe2\x80\x9c无法删除在 \'<worktree>\'\xe2\x80\x9d ( builtin/branch.c ) 签出的分支 \'<bname>\' 是由 ( branch.c中的原因之一引起的)。基本上你应该跑去git status找出什么适合你。

\n
    \n
  1. 您是否想删除当前的分支?git status将在分支 <name>\xe2\x80\x9d 上显示 \xe2\x80\x9c。如果是这样,您必须首先切换到不同的分支(git switch <other>),甚至切换到分离的 HEAD 提交。
  2. \n
  3. 您是否正在对尝试删除的分支进行变基?git status将显示有关 \xe2\x80\x9crebase 的信息正在进行\xe2\x80\x9d。如果是这样,请完成变基或git rebase --abort.
  4. \n
  5. 您是否正在尝试删除您启动的分支git bisectgit status将显示 \xe2\x80\x9c您当前正在平分,从分支 \'<BISECT_START>\' 开始。\xe2\x80\x9d 如果是这样,请运行git bisect reset.
  6. \n
  7. 你正在用 进行变基吗--update-refs?如果是这样,那么当您开始变基时,在其他工作树中检出的所有其他分支(使用任何变基提交)都无法删除,直到您完成或中止git rebase. 再次,git status会告诉您是否要变基,但它不会告诉您 update-refs 适用于哪些其他分支。.git/rebase-merge/update-refs如果要变基,您可以通过阅读(或)找出哪些分支将是 update-refs\xe2\x80\x99d .git/worktrees/<worktree>/rebase-merge/update-refs
  8. \n
  9. 在所有其他工作树 ( git worktree list) 中重复步骤 1-4,看看为什么您无法\xe2\x80\x99 删除分支。
  10. \n
\n