git branch -d <branchname>抛出错误:找不到分支<branchname>

Joh*_*Dew 14 git git-branch

当我输入git branch我得到

* master
localbranch
Run Code Online (Sandbox Code Playgroud)

但是当我尝试删除分支,git branch -d localbranch我得到一个未找到错误:git branch -D localbranch,

我也试图强制删除,git branch但它给了我同样的错误.

分支已损坏,我做了以下过程,Git存储库损坏(不正确的标头检查;松散的对象已损坏),删除损坏的文件但现在我无法删除分支.

mu *_*u 無 16

分支存储为包含它们指向的SHA的文件.尝试localbranch.git/refs/head/项目目录中删除名为this branch的文件:

rm .git/refs/heads/localbranch
Run Code Online (Sandbox Code Playgroud)

  • 我会推荐 `git update-ref` 并且只在 .git 目录中混杂作为最后的手段,注意分支可能会在 `.git/packed-refs` 中找到 (3认同)

Spa*_*gen 5

在某些情况下,该分支包含不在终端窗口中显示的字符,因此我需要直接进入存储库。

Windows的My Git处于这种状态:

$ git branch -l
  master
* next
  my-topic-branch
Run Code Online (Sandbox Code Playgroud)

但是移除失败

$ git branch -D my-topic-branch
error: branch 'my-topic-branch' not found.
Run Code Online (Sandbox Code Playgroud)

显示heads目录的内容表明分支名称更加复杂...

$ ls -al .git/refs/heads
total 7
drwxr-xr-x 1 112802 197121  0 Oct 11 13:06 ./
drwxr-xr-x 1 112802 197121  0 Jul 11 14:30 ../
-rw-r--r-- 1 112802 197121 41 Oct  4 12:39 ''$'\302\222''my-topic-branch'
-rw-r--r-- 1 112802 197121 41 Sep 15 15:23 master
-rw-r--r-- 1 112802 197121 41 Oct 11 13:05 next
drwxr-xr-x 1 112802 197121  0 Jul 12 13:28 origin/
Run Code Online (Sandbox Code Playgroud)

而且我可以成功删除全名

$ git branch -D ''$'\302\222''my-topic-branch'
Deleted branch my-topic-branch (was efbc2fa).
Run Code Online (Sandbox Code Playgroud)