如何删除本地空 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是要删除的分支名
我创建了一个本地空分支:
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是要删除的分支名