Git Flag语法:为什么有些标志有一个破折号而有些有-two?

时间:2013-08-08 23:10:33

标签: git syntax flags

我正在学习Git并且unable to find any explanation of the flag syntax

我不是指“裸双击”

--

,正如我们所知,这表明以下内容不是一种选择。我指的是各种实际的旗帜,有时会有一个短划线,有时会有两个。

git log -2 -p -U1 --graph

旗帜有一个破折号和两个破折号有什么区别?双短划线表示什么?

例如,以下两个标志相同,(according to this):

-q
--quiet

为什么不同的短划线?如果我输错了号码怎么办?

1 个答案:

答案 0 :(得分:16)

我的理解是git遵循标准的'标准'Linux约定。那就是:

  • 一个简短的'短'标志:通常是一个字符标志,但有时是带有单个字符的标志,然后是表示标志参数的其他字符(例如git log -SFoo,其中Foo-S标志的参数。这些标志可能是也可能不是其他较长标志的缩写形式。
  • “long”标志的两个破折号:多字符标志,通常是英文单词。如果这些标志接收参数,则会通过=符号(例如git log --author=Peter)将其与标志分开。

这就是'为什么':它是嵌入Linux世界的惯例。 Git来自这个世界,所以它遵循惯例。 “长旗的两个破折号,一个用于短旗的规则”规则应指导您使用多少破折号作为旗帜。

至于为什么存在重复的短标志和长标志,例如--quiet-q,它只是提供助记符或简洁性的选项。 --quiet更容易记住,但如果您习惯了,-q可以更快地输入和精神解析。例如,我经常输入git commit -m "...blah",如果每次输入git commit --message='...blah'我必须加倍指令长度,我就会感到紧张。

我没有遇到过任何git标志,这些标志在两个短划线和一个破折号的情况下表现不同,所以通常如果你为一个破折号标志输入两个破折号或者反之亦然,那么没有什么不可挽回的坏发生了,git会抱怨你的旗帜,什么都不做。

当然,git有大量的命令,每个命令都有大量的标志,因此所有这些规则都有可能存在例外。他们通常应该坚持。