我用:
创建了一个本地空分支mkdir test
cd test
git checkout -b branch_local
我无法将其删除:
git branch -D branch_local
我得到了
error: Cannot delete branch 'branch_local' checked out at 'D:/test'
请告知。
答案 0 :(得分:1)
在删除要删除的分支之前,请检查不同的分支。 例如:
第1步:git checkout master
第2步:git branch -D branch_local
branch_local是要删除的分支的名称。
答案 1 :(得分:0)
如果要删除存储库并将文件保留在其中,可以删除.git/
中的test/
目录。警告:这会破坏你的历史!
如果要删除存储库和文件,可以删除目录test/
。警告:这将破坏历史记录和文件!
如果你想破坏新分支并切换到另一个分支(这是我想你想做的),你需要先检查那个分支。
如果存在,则运行git checkout <branch_name> && git branch -D branch_local
。如果另一个分支不存在,则添加-b
标志:git checkout -b <branch_name> && git branch -D branch_local
警告:branch_local
中的历史记录将丢失,除非您保留提交的哈希并阻止任何垃圾收集。
如果要在不签出新分支的情况下删除分支,可以删除文件.git/refs/heads/branch_local
。 Git仍然会认为您已将此分支签出,因为该名称位于.git/HEAD
文件中,并且该文件是存储库有效所必需的。
请注意,如果您从初始提交创建了新分支,则文件.git/refs/heads/branch_local
不会存在,分支也不会存在。
如果您进行提交,该名称只是要创建的分支的名称,并且此名称存储在.git/HEAD
文件中,该文件包含该行
ref: refs/heads/branch_local
因此,您可以直接编辑文件,或使用上面的git命令进行编辑。
总之,.git/HEAD
文件中必须有一个分支的名称,或者存储库无效,无论分支是否实际存在。