git branch-d выдает ошибку: ветка не найдена

когда я типа git branch Я

* master
localbranch

но когда я пытаюсь удалить ветку, git branch -d localbranch Я получаю не найдена ошибка: error: branch 'localbranch' not found.,

Я также попытался заставить удалить с git branch -D localbranch но это дает мне ту же ошибку.

ветка была повреждена, и я сделал следующую процедуру,репозиторий Git поврежден (неправильная проверка заголовка; свободный объект поврежден), чтобы удалить поврежденные файлы, но теперь я не могу удалить ветку.

2 ответов


ветви хранятся в виде файлов, содержащих SHA, на которые они указывают. Попробуйте удалить файл для этой ветви с именем localbranch С .git/refs/head/ каталог в вашем проекте:

rm .git/refs/heads/localbranch

в некоторых случаях ветка содержит символы, которые не отображаются в окне терминала, поэтому мне нужно было напрямую перейти в репозиторий.

мой Git для Windows оказался в этом состоянии:

$ git branch -l
  master
* next
  my-topic-branch

но удаление не удалось

$ git branch -D my-topic-branch
error: branch 'my-topic-branch' not found.

показ содержимого каталога 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 ''$'22''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/

и я мог бы успешно удалить полное имя

$ git branch -D ''$'22''my-topic-branch'
Deleted branch my-topic-branch (was efbc2fa).