put - and - - 在git命令中切换之前

时间:2013-11-23 23:00:22

标签: git

为什么我们先将-放在git和--之前的某些开关之前?是否有任何经验法则可以帮助您记住使用哪一个?

3 个答案:

答案 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这样非常一致的实用程序中,规则是单字母开关为-,而较长的开关(实际字)以--开头。