Git 标记语法 : why do some flags have -one dash and some have --two?

标签 git syntax flags

我正在学习 Git 并且一直在 unable to find any explanation of the flag syntax .

我指的不是“纯双破折号”

--

正如我们所知,这表明接下来的内容不是一个选项。我指的是各种实际标志,有时有一个破折号,有时有两个破折号。

git log -2 -p -U1 --graph

带有一个破折号和两个破折号的旗帜有什么区别?双破折号表示什么?

例如,下面两个标志是相同的,(according to this):

-q
--quiet

为什么破折号的数量不同?如果我输入错误的号码怎么办?

最佳答案

我的理解是 git 遵循“标准”Linux 标志约定。即:

  • 一个破折号代表“短”标志:通常是一个字符标志,但有时标志是单个字符,然后是表示标志参数的其他字符(例如 git log -SFoo,其中Foo-S 标志的参数)。这些标志可能是也可能不是其他较长标志的缩写形式。
  • “长”标志的两个破折号:通常是英文单词的多字符标志。如果这些标志接收参数,则通过 = 符号将其与标志分开(例如 git log --author=Peter)。

这就是“为什么”:它是嵌入在 Linux 世界中的约定。 Git来自这个世界,所以它遵循约定。 “两个破折号代表一个长旗帜,一个破折号代表一个短旗帜”规则应该指导您确定一个旗帜使用多少个破折号。

至于为什么会有--quiet-q等重复的short和long flags,只是为了提供助记方便或简洁的选择。 --quiet 更容易记住,但是 -q 如果您习惯的话,输入和精神分析会更快。例如,我如此频繁地键入 git commit -m "...blah" 如果我每次都必须通过输入 git commit - 将命令的长度加倍,这会让我很紧张-message='...blah'.

我还没有遇到任何 git 标志在给定两个破折号和一个破折号时表现不同,所以通常如果你输入两个破折号作为一个破折号标志或反之亦然,没有什么不可挽回的坏事发生这种情况,git 只会提示你的标志而不做任何事情。

当然,git 有大量的命令,每个命令都有大量的标志,因此所有这些规则都有可能存在异常(exception)。不过,它们通常应该持有。

关于Git 标记语法 : why do some flags have -one dash and some have --two?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137757/

相关文章:

git - 如果我为尚未推送的提交推送标签会发生什么

git - 通过代理进行go-git克隆

git - 查找作者修改的所有当前行

没有远程分支的 Git merge

c++ - "else if"是单个关键字吗?

"a= object,object"的 Javascript 语法

asp.net - 查询表达式中的语法错误(缺少运算符) - ASP.NET

PHP, 排序, sort_flags

java - 如何在 Java 中使用带有 `^` 标志的 printf 使文本居中?

c - 我如何摆脱调用 __x86.get_pc_thunk.ax