如何删除本地空 git 分支

How to delete local empty 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'

请指教

如果要删除存储库并保留其中的文件,可以删除 test/ 中的 .git/ 目录。警告:这会破坏您的历史记录!

如果要删除存储库和文件,可以删除目录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 文件中必须有分支名称,否则存储库无效,无论该分支是否实际存在。

在删除要删除的分支之前先在不同的分支上签出。 例如:

第 1 步:git 结账大师

第 2 步:git 分支 -D branch_local

branch_local是要删除的分支名