我用“git checkout -b mybranch”创建了分支。似乎出了点问题,现在我无法使用“git branch -D mybranch”删除它。它说:错误:没有找到分支'mybranch'。
答案 0 :(得分:46)
如果git branch -D
确实无法正常工作,那么您唯一的选择就是自己动手并编辑git check-out状态。您应该转到签出的根目录(.git
目录所在的位置)和
.git/packed-refs
;如果您看到包含您的分支名称的行,则将其删除.git/refs/heads
中查找以您的分支命名的文件;如果你看到一个,删除它答案 1 :(得分:7)
我使用git update-ref -d refs/heads/<branch name>
来解决此问题。据推测,这与Rup在选定答案中建议的内容完全相同,除非它通过Git的CLI进行接口。
答案 2 :(得分:2)
我遇到同样的问题.git/refs/heads
无法正常工作,我在branch_name
和git 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``'