【问题标题】:Having trouble deleting a local branch even after checkout to another branch即使在结帐到另一个分支后也无法删除本地分支
【发布时间】:2019-06-13 04:57:37
【问题描述】:

我正在尝试删除我的本地分支并尝试了我在此处找到的大多数解决方案,即结帐到另一个分支,然后运行 ​​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

错误截图: (virtualBDD) 是我的虚拟环境。你可以忽略它。

【问题讨论】:

  • 你能发布完整的错误信息截图吗?顺便说一句,你试过重启你的机器吗?
  • @MohanaRao 整个错误已经在我发布的问题中,但如果对您有帮助,我提供了一个屏幕截图。我还编辑了我的问题以包含我已经尝试过的所有内容。
  • 您是否检查过单独工作树中的分支 (git worktree list)?
  • @joran 是的,我有。当我在我的一个项目中工作时,我做了git worktree add -b branch_name ../project_name develop 来创建另一个从我的开发分支分支出来的项目。当我执行git worktree list 时,我看到了我要删除的工作树。
  • 谢谢@joran。做git worktree prune 解决了我的问题。尽管我先阅读了 brian 的答案并进行了更多研究,但您和我基本上得出了相同的答案。

标签: git branch git-bash


【解决方案1】:

您在另一个位置签出了相关分支的工作树,并且在删除工作树之前无法删除该分支。

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

【讨论】:

  • git worktree remove 对我不起作用,因为我删除了目录,并且不断收到错误消息,说明“这不是工作树”。我找到了一种有助于解决我的问题的方法,该方法在我自己对我的问题的回答中提供。不过感谢您的帮助。
  • 这是我的回答。谢谢。
【解决方案2】:

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

【讨论】:

  • 它是:git worktree removestackoverflow.com/a/49331132/6309
  • @VonC git worktree remove 对我不起作用,因为我删除了目录,并且我不断收到错误消息,说明“这不是一棵工作树”。您提供的链接确实有我需要的命令。
猜你喜欢
  • 2018-07-24
  • 2020-11-19
  • 2016-11-07
  • 2018-09-29
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
相关资源
最近更新 更多