Git: что такое дополнительные символы в конце git имени ветви "? [M"? - PullRequest
0 голосов
/ 16 марта 2020

Не удалось удалить все локальные филиалы. Некоторые специальные символы добавляются в конце и git выдает следующую ошибку:

git branch | grep -v "develop" | xargs git branch -D

error: branch 'anjum_br?[m' not found.
error: branch 'deploy_doc?[m' not found.
error: branch 'deploy_doc_fix?[m' not found.

1 Ответ

0 голосов
/ 16 марта 2020

Я предлагаю вам запустить git branch | grep -v "develop" | od -xcb, чтобы получить лучшее представление о том, что вы видите. ESC [ m (эквивалент ESC [ 0 m) - это конечная последовательность для сброса графического представления (цвета и другие атрибуты).

Вам понадобится шестнадцатеричный 1b или восьмеричный 033.

Если это соответствует , есть большая вероятность, что что-то перехватывает ваши потоки и внедряет в них эти escape-последовательности. Наиболее вероятной причиной является установка color.ui на always, как показано в дампе ниже, когда я установил этот флаг:

0000340    6d5b    200a    6d20    7361    6574    1b72    6d5b    000a
          [   m  \n           m   a   s   t   e   r 033   [   m  \n
        133 155 012 040 040 155 141 163 164 145 162 033 133 155 012

Вы можете увидеть escape-последовательность 033 [ m в выходном потоке в этом случае. Установка этого флага на auto должна использовать цвет, если он обнаруживает вывод, отправляемый на терминал, в противном случае цвет не будет:

git config --global color.ui auto
...