Возникли проблемы при удалении локальной ветки даже после оформления покупки в другую ветку - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь удалить свою локальную ветвь и перепробовал большинство решений, которые я нашел здесь, чтобы перейти к другой ветке и затем запустить git branch -D (or -d) <my_branch>. Я пытался это сделать, но все равно получаю ту же ошибку, которая гласит: «Невозможно удалить ветку« my_branch », зарегистрированную в« my_path »

Как я себя чувствовал в этой ситуации: я отошел от своей ветки разработки, выполнив git worktree add -b branch_name ../project_name develop. Затем я понял, что хочу изменить имя своей ветви, поэтому сначала удалил весь каталог, используя rm- rf. Теперь my_path указывает на удаленный каталог, поэтому я не уверен, что теперь делать. Помощь будет оценена. Я работаю на Windows 7, используя Git Bash

Вещи, которые я пробовал:

  1. Перезагрузка компьютера
  2. Переустановка Git Bash
  3. Оформить заказ в другую ветку и попробовать git branch -d и git branch -D

Скриншот ошибки: git branch delete error (VirtualBDD) - это моя виртуальная среда. Вы можете игнорировать это.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Сделал немного больше просмотров и наткнулся на этот ответ , который использует git worktree prune для удаления информации о (незаблокированных) рабочих деревьях, которые больше не существуют. Это по существу удалило мое рабочее дерево из git worktree list, а затем я приступил к git branch -d my_branch. Это решило мою проблему. Спасибо всем, кто помог.

0 голосов
/ 22 января 2019

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

Git не позволяет вам удалить ветку, с которой связано рабочее дерево, так как это оставит рабочее дерево в бесполезном и поврежденном состоянии. Если вы хотите удалить ветку, сначала вам нужно использовать git worktree remove для удаления заданного рабочего дерева, возможно, с -f, и тогда вы сможете удалить ветку. Если вы не уверены, где находится ваше рабочее дерево, вы можете использовать git worktree list, чтобы найти его.

...