11

假设我在一个裸存储库(远程)中,如果我尝试删除一个分支,git branch -d <branch_name>我会收到以下错误:

fatal: Couldn't look up commit object for HEAD

为什么?为什么我不能从裸存储库中删除分支是有原因的吗?

4

4 回答 4

18

确保D在命令中使用大写字母,在这种情况下,您将键入git branch -D <branch_name>. 请注意,这只会从本地计算机中删除分支

如果您尝试删除远程分支,请键入git push origin :<branch_name>(记得添加冒号)

于 2013-05-20T14:19:33.577 回答
2

为避免这种混淆,您可以使用

“git推送来源--删除分支名称”

这会删除远程分支而不是本地分支。

于 2013-05-21T18:51:43.987 回答
1

在 Windows 资源管理器中找到文件 .git/refs/heads/branch_name 并直接将其删除。

于 2016-05-03T05:38:41.157 回答
0

仅当默认分支(裸存储库文件夹中的分支 HEAD 指向 - 通常master)在本地不存在时才会发生这种情况。如果它确实存在 - 您branch -d甚至可以从裸存储库文件夹中删除分支(-d 假设它已合并)。

如果您正在使用 git worktrees - 从工作树发出命令可能会成功(应该满足关于工作树的 HEAD 的相同条件)

于 2018-05-31T11:16:44.497 回答