如何删除本地空git分支

时间:2018-04-02 10:45:48

标签: git git-branch

我用:

创建了一个本地空分支
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'

请告知。

2 个答案:

答案 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文件中必须有一个分支的名称,或者存储库无效,无论分支是否实际存在。