Ответ 1
Вы пробовали
git branch -D -- --track
? "--
" обычно является соглашением для "то, что следует, это не вариант, независимо от его имени"
От " Искусство программирования Unix", раздел " Command- Параметры линии":
Также принято распознавать двойной дефис в качестве сигнала, чтобы остановить опцию интерпретации и рассматривать все следующие аргументы буквально.
Вы найдете это соглашение в другом (необязательном Unix-связанном) CLI (интерфейс командной строки), например cleartool:
Если аргумент nonoption начинается с символа дефиса (
–
), вам может потребоваться предшествовать ему аргумент с двумя аргументами, чтобы он не интерпретировался как опция:
cleartool rmtype -lbtype -- -temporary_label-
P18 (быстрый и гибкий препроцессор файлов с возможностями обработки макросов и специальная поддержка интернационализации) упоминает это также и дает хороший описание общей идеи этого соглашения:
Все аргументы параметров, переданные командам, начинаются с одного дефиса.
Все аргументы параметров (если они есть) должны предшествовать всем аргументам без опций.
Конец аргументов опции может быть сигнализирован с помощью double hyphen, это полезно, если аргумент без опции начинается с дефиса. Завершение списка аргументов параметров с двойным дефисами работает для всех команд, даже тех, которые не принимают аргументов параметров.
Инструмент OptionParser, написанный на рубине, также совершенно ясно показывает: *
Окончание сеанса опций
Согласие на то, что двойной дефис является сигналом, чтобы остановить опцию интерпретации и прочитать остальные инструкции в командной строке буквально. Итак, команда, например:
app -- -x -y -z
не будет видеть три флага режима. Вместо этого они будут рассматриваться как аргументы для приложения:
#args = ["-x", "-y", "-z"]
Примечание: иногда требуется три тире, а не два, особенно если CLI строго соответствует стилям опций Gnu:
Параметры командной строки стиля Gnu обеспечивают поддержку слов параметров (или ключевых слов), но при этом сохраняют совместимость с параметрами стиля Unix.
Параметры в этом стиле иногда называютсяlong_options
, а параметры стиля Unix -short_options
.
Совместимость сохраняется, предшествуя long_options с двумя штрихамиКак и стиль Unix с двойным дефем
--
, стиль Gnu имеет трижды дефис---
, чтобы сигнализировать о том, что синтаксический разбор параметров остановлен, и обрабатывать оставшийся текст как аргументы (то есть читать буквально из команды строка)
Итак... если '--
' недостаточно (это должно быть с командами Git), попробуйте '---
'