【问题标题】:Git command - significance of "-" and "--"Git命令——“-”和“--”的意义
【发布时间】:2015-11-17 10:32:08
【问题描述】:

在学习 git 时,我对何时使用单破折号和双破折号感到困惑。用法上有什么显着区别?

git ls-tree [-d] [-r] [-t] [-l] [-z] [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]] <tree-ish> [<path>…]

有时我可以互换使用这些。例如:-l--long,这让我更加困惑。

【问题讨论】:

  • 通常单破折号用于单字符选项。双破折号用于扩展名称选项。通常一个选项可以用一个短划线和字符的缩写形式来写,或者用双短划线和名称的扩展形式来写。您可以使用单个破折号附加更多命令,例如 git -am

标签: git


【解决方案1】:

Git 接近 POSIX Utility Argument Syntax,但也使用 --arg=xx (GNU)

This document "Standards for Command Line Interfaces" 很好地恢复了使用的约定:

在最初的 Unix 传统中,命令行选项是单个字母前面有一个连字符
不带以下参数的模式标志选项可以组合在一起;因此,如果-a-b 是模式选项,则-ab-ba 也是正确的并且启用两者。
选项的参数(如果有)紧随其后(可选用空格分隔)。
在这种风格中,小写选项优于大写。当您使用大写选项时,它们最好是小写选项的特殊变体。

最初的 Unix 风格是在缓慢的 ASR-33 电传打字机上演变而来的,这使得简洁成为一种美德;因此是单字母选项。
按住shift键需要实际的努力;因此偏好小写,并使用“-”(而不是可能更合乎逻辑的“+”)来启用选项。

GNU 样式使用前面有两个连字符的选项关键字(而不是关键字字母)。几年后,当一些相当复杂的 GNU 实用程序开始用完单字母选项键(这构成了针对症状的补丁,而不是针对潜在疾病的治愈方法)时,它发展了。
它仍然很受欢迎,因为 GNU 选项比旧样式的字母汤更容易阅读。
GNU 风格的选项不能在不分隔空格的情况下组合在一起。选项参数(如果有)可以用空格或单个“=”(等号)字符分隔。

选择了 GNU 双连字符选项前导符,以便传统的单字母选项和 GNU 风格的关键字选项可以在同一命令行中明确混合
因此,如果您的初始设计选项很少且简单,您可以使用 Unix 风格,而不必担心在以后需要切换到 GNU 风格时会导致不兼容的“标志日”。
另一方面,如果您使用的是 GNU 样式,最好至少在最常见的选项中支持单字母等效项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多