为什么我们先将-
放在git和--
之前的某些开关之前?是否有任何经验法则可以帮助您记住使用哪一个?
答案 0 :(得分:4)
这实际上是类Unix系统的一般功能,它在GNU应用程序中很常见:单个破折号选项是“短”选项,双破折号选项是“长”选项。通常可以组合短选项,例如,git checkout -qf
表示与git checkout -q -f
相同。例如,见Using getopts in bash shell script to get long and short command line options。各种语言具有用于解析短期和/或长期选项的库例程(例如,C具有getopt()
且通常拼写为getopt_long()
的变体; Python's argparse
module直接支持短期和长期期权)
因此,一个字母的选项标志有一个短划线,而更长的,类似名称的选项有两个。
虽然这不是你要求的,但另一个相关的,普遍接受的做法是--
本身(没有后续的长选项)被视为选项的结束。这允许您指定名为-file
的文件,而不使用./-file
的典型替代解决方法。 Git采用并扩展了这个想法:--
将诸如分支名称之类的东西与文件名之类的东西分开。如果您碰巧在名为master
的分支中有一个名为master
的文件,您可以这样做:
git checkout master
命名分支,并且:
git checkout -- master
命名文件。 (这在编写shell脚本或git别名时非常有用,您不希望将文件名参数意外地视为分支名称。)
答案 1 :(得分:2)
作为一般经验法则,Git使用典型的Linux风格标志。这些是带有单个字符的标记的短划线,例如-s
或-u
,以及带有多个字符的标记的两个短划线,例如--soft
或--hard
。
答案 2 :(得分:2)
在像Git这样非常一致的实用程序中,规则是单字母开关为-
,而较长的开关(实际字)以--
开头。