在git中删除断开的分支

时间:2012-06-14 08:28:43

标签: git

我用“git checkout -b mybranch”创建了分支。似乎出了点问题,现在我无法使用“git branch -D mybranch”删除它。它说:错误:没有找到分支'mybranch'。

6 个答案:

答案 0 :(得分:46)

如果git branch -D确实无法正常工作,那么您唯一的选择就是自己动手并编辑git check-out状态。您应该转到签出的根目录(.git目录所在的位置)和

  1. 编辑.git/packed-refs;如果您看到包含您的分支名称的行,则将其删除
  2. .git/refs/heads中查找以您的分支命名的文件;如果你看到一个,删除它

答案 1 :(得分:7)

我使用git update-ref -d refs/heads/<branch name>来解决此问题。据推测,这与Rup在选定答案中建议的内容完全相同,除非它通过Git的CLI进行接口。

答案 2 :(得分:2)

我遇到同样的问题.git/refs/heads无法正常工作,我在branch_namegit fetch -p origin中找不到任何内容,但我收到的文件

  

的.git /参/遥控器/来源

使用我无法在本地以及远程删除的分支的名称。 但删除了我想要删除的--prune文件后,它没有显示在本地。

要在远程使用时删除它

  

git push origin :<branch_name_you_was_unable_to_delete>

-p IF (condition_to_evaluate, result_if_true, result_if_false) 选项告诉您在获取之前,删除远程不再存在的任何远程跟踪引用。 然后使用命令

  

IF(id_t1 IS NOT NULL, True, False) AS in_t1

在遥控器上删除。

你完成了。 :)

答案 3 :(得分:1)

您显然不需要删除不存在的分支。使用git branch查看分支列表,如果它不在那里,则没有分支,您不需要删除它。否则,请确保正确输入名称,git branch -D应该有效。

尽管如此,您不需要太在意可能仍然存在但无法访问的断枝。 Git中的分支实际上是简单的40字节文件,因此不需要担心。

答案 4 :(得分:1)

我遇到了同样的问题。每当我执行git branch命令时,分支就在分支列表中,但我无法删除它。

我的案例中的解决方案很简单,有点出乎意料:我检查了破损的分支git checkout broken_branch(是的,它有效),然后我检查了回到主人并再次执行{{1} }。

答案 5 :(得分:1)

如果分支名称包含特殊字符,则需要引用它:

$ git branch -D 'ENH-Adding-unit-``julian``-to-``to_datetime``'