在git命令SYNOPSIS中`()`的含义是什么?

时间:2015-08-19 02:37:49

标签: git syntax posix

git reset的{​​{3}}:

  

'git reset'( - patch | -p)[< tree-ish>] [ - ] [< paths> ...]

我对标记的含义有疑问。

我知道[]代表选项,<>代表替代。但是,()的含义是什么? 如果没有|,是否还需要括号?

我没有在POSIX synopsis中找到相关线索。

2 个答案:

答案 0 :(得分:7)

git在他们的Github上找到了CodingGuidelines。它为贡献者提供了样式指南,同时还描述了如何编写帮助选项。其他来源如POSIX或BSD不应被视为权威,特别是因为它们并不总是符合POSIX 1 。以下摘录位于文件底部附近:

Placeholders are spelled in lowercase and enclosed in angle brackets:
   <file>
   --sort=<key>
   --abbrev[=<n>]

Optional parts are enclosed in square brackets:
   [<extra>]
   (Zero or one <extra>.)

   --exec-path[=<path>]
   (Option with an optional argument.  Note that the "=" is inside the
   brackets.)

   [<patch>...]
   (Zero or more of <patch>.  Note that the dots are inside, not
   outside the brackets.)

Multiple alternatives are indicated with vertical bars:
   [-q | --quiet]
   [--utf8 | --no-utf8]

Parentheses are used for grouping:
   [(<rev> | <range>)...]
   (Any number of either <rev> or <range>.  Parens are needed to make
   it clear that "..." pertains to both <rev> and <range>.)

   [(-p <parent>)...]
   (Any number of option -p, each with one <parent> argument.)

   git remote set-head <name> (-a | -d | <branch>)
   (One and only one of "-a", "-d" or "<branch>" _must_ (no square
   brackets) be provided.)

And a somewhat more contrived example:
   --diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
   Here "=" is outside the brackets, because "--diff-filter=" is a
   valid usage.  "*" has its own pair of brackets, because it can
   (optionally) be specified only when one or more of the letters is
   also provided.

1 :以下摘录位于文件顶部:

  

与其他项目一样,我们也有一些指导方针可以保留代码。   对于一般的Git,一些粗略的规则是:

     
      
  • 最重要的是,我们从未说过#POS;它在POSIX中;如果您的系统不符合您的需求,我们会高兴地忽略您的需求。&#34;我们住在   现实世界。

  •   
  • 但是,我们经常说&#34;让我们远离那个结构,它甚至不在POSIX&#34;。

  •   
  • 尽管有上述两条规则,我们有时会说&#34;虽然这不是在POSIX中,但它(非常方便)使代码更多   可读|有其他好的特点)几乎所有的   我们关心的平台支持它,所以让我们使用它&#34;。

         

    同样,我们生活在现实世界中,有时候也是如此   判断呼叫,决定更多地基于现实世界的约束   人们面对的是纸质标准所说的。

  •   

答案 1 :(得分:0)

从手册页(5),BSD文件格式手册,“手动页面语法”部分:

  

在某些情况下,您甚至可能会看到整个参数组用括号括起来并用垂直分隔符分隔。这是显示命令具有多个有效语法的一种方法。在其他手册页中,这通过在概要中包含多行来表示,每一行都以命令名开头。分离的格式更常见(也更易读),但对于语法特别复杂的命令并不总是可行。最后,最重要的符号约定是使用省略号(...)。这表明此时可能会添加其他参数。