Что такое «переключатель» в команде Git? - PullRequest
3 голосов
/ 07 февраля 2020

Я читал книгу, в которой синтаксис команд git представлен следующим образом: enter image description here

enter image description here

, поэтому мой вопрос, --global также переключатель? Может ли переключатель также быть аргументом?

Обновлено:

В книге сказано, что --global - это переключатель, поэтому я предполагаю, что -a также является переключателем, и мы можем использовать его как git help -a , но мы не можем использовать его как git -a help, который должен быть действительным в соответствии с синтаксисом?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2020

Все параметры переключателей переданы перед любой Git фактическая команда: см. docs/git

git [--version] [--help] [-C <path>] [-c <name>=<value>]
    [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
    [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
    [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
    [--super-prefix=<path>]
    <command> [<args>]

Вы можете увидеть все возможные переключатели before <command> [<args>]

--global - это переключатель для команды git config, как здесь , а не только для "git".

Термин «переключатель» был введен в commit 0a8365a; Май 2005, Git v0.99

diff-tree: исправить и расширить синтаксический анализ аргумента

Мы используем "--", чтобы отметить конец переключатели командной строки , а не "-".

Это встроено в соглашение о командной строке с двойным дефисом *1036*, которое, как я объяснил здесь 1038 *, полезно, если начинается неопциональный аргумент с дефисом.

                       -- optional separator, followed by arguments
                       v
git -p config --global -- user.name
    ^^        ^^^^^^^^
     |            |_ switch for the git config subcommand.
     |
  switch for the git command
1 голос
/ 07 февраля 2020

Обычно аргумент командной строки, начинающийся с дефиса, называется ключом. (Но даже с этим «определением» я бы рассматривал жаргонное слово «переключатель» в этом контексте, а не технический термин.)

«Переключатель» обычно меняет второстепенный аспект команды или ее режим операция.

Поскольку команда git имеет много подкоманд, у вас могут быть переключатели, которые применяются к команде в целом (это переключатели между git и подкомандой) и переключатели, которые применяются к подкоманда (это происходит после подкоманды).

В вашем примере

git -p config --global user.name "Rick"
  • -p - это переключатель, который применяется к команде в целом ;

  • --global - это переключатель, который применяется к подкоманде.

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