git reset
的{{3}}:
'git reset'( - patch | -p)[< tree-ish>] [ - ] [< paths> ...]
我对标记的含义有疑问。
我知道[]
代表选项,<>
代表替代。但是,()
的含义是什么?
如果没有|
,是否还需要括号?
我没有在POSIX synopsis中找到相关线索。
答案 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文件格式手册,“手动页面语法”部分:
在某些情况下,您甚至可能会看到整个参数组用括号括起来并用垂直分隔符分隔。这是显示命令具有多个有效语法的一种方法。在其他手册页中,这通过在概要中包含多行来表示,每一行都以命令名开头。分离的格式更常见(也更易读),但对于语法特别复杂的命令并不总是可行。最后,最重要的符号约定是使用省略号(...)。这表明此时可能会添加其他参数。