Удалить ветку git по чему угодно, а не по имени - PullRequest
0 голосов
/ 16 мая 2018

У меня проблема с удалением ветки git. Сначала я смог создать его, используя 'git checkout -b ....'. Но мне кажется, что я допустил ошибку, когда писал, ударил что-то не так, затем отступил. Это привело к неправильному названию этой ветви.

Мне удалось поработать над этой веткой, даже отправить ее на удаленный компьютер, но она ведет себя странно (не видит ветки в веб-интерфейсе).

git branch -r показывает мне

origin/master
origin/rrseria_test_utility

В веб-интерфейсе (bitbucket) я вижу эту ветку в коммитах со следующим именем

rrseriaÅl_test_utility

Обратите внимание, что заглавная A - это не просто A, а A с кружком выше. Похоже на символ UTF-8 'U + 00C5'.

Когда я пытаюсь удалить его, тогда

git branch -d rrseria_test_utility
error: branch 'rrseria_test_utility' not found. 

git checkout rrseria_test_utility
error: pathspec 'rrseria_test_utility' did not match any file(s) known to git. 

Можете ли вы помочь мне, как удалить эту ветку?

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете использовать git branch --list rrseria* для вывода списка только тех ветвей, названия которых начинаются с rrseria. Если их несколько, вы можете использовать более конкретный шаблон, используя подстановочный знак * для не-ASCII символов (rrseria*l_test_utility f.e.).

Эта команда отображает название ветви, которую вы хотите удалить.

Если вы работаете в Linux или macOS, вы можете использовать его вывод для создания команды Git для удаления этой ветки:

git branch -d $(git branch --list rrseria*)

Или вы можете использовать мышь, чтобы скопировать имя ветви в окне терминала из вывода git branch --list и вставить его (обратно в окно терминала), чтобы создать команду git branch -d.

Или вы можете использовать свой любимый файловый менеджер для навигации по каталогу .git/ref/heads и удаления файла, имя которого совпадает с именем ветви (это то, что git branch -d делает в фоновом режиме).

После этого вам нужно отправить удаление в удаленные репозитории:

git push origin --prune refs/heads/*

Если у вас более одного пульта, повторите приведенную выше команду для каждого из них (вместо origin введите его имя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...