Удалить ветку с именем <u+0096><u+0096>DEV - в оболочке Git-for-Windows </u+0096></u+0096>

373
Karl Richter

Я переименовал ветку в имя, скопированное из Firefox и вставленное в оболочку Git-for-Windows (MinGW64), и теперь ветка названа <U+0096><U+0096>DEV-. Afaik ведущие <U+0096>представляют невидимые или непечатаемые символы, которые оболочка не может игнорировать, или это довольно раздражающая проблема в Jira, откуда я скопировал название ветви.

Я смог выбрать коммит на основе хеша коммита reflog. Теперь я хочу избавиться от ветки (желательно в командной строке, чтобы выучить некоторые приемы Windows).

1

1 ответ на вопрос

2
A.H.

В bashвы можете использовать управляющие последовательности C-стиль с этим синтаксисом: $'string'. Таким образом, вы можете удалить ветку с

> git branch -D $'\x96\x96DEV-' 

На всякий случай, если вы не знаете точных байтов, вы можете использовать это, чтобы узнать:

> git show-ref | sed -n 's#.* refs/heads/##p' | grep -a DEV- | hexdump -C 00000000 96 96 44 45 56 2d 0a |..DEV-.| 00000007 

Вы должны опустить трейлинг 0aили 0d 0aхотя.

Спасибо за ваш вклад. В Ubuntu 18.10 ветка отображается как ``. Между тем мне проще удалить в ветку оттуда. Любая идея? Karl Richter 6 лет назад 0
Синтаксис, который я показал, является синтаксисом `bash`. Поэтому он будет работать в `git-bash` в Windows и обычном` bash` в Linux одинаково. A.H. 6 лет назад 0
Я согласен, что это должно работать, но это не так (на Ubuntu 18.10), к сожалению. Я попытался `git branch -D $ '\ x96'` для ветви, отображаемой как``в выходных данных` git branch -a` (говорит `error: branch ' ' not found`). Karl Richter 5 лет назад 0