【问题标题】:Errors in Git Documentation?Git 文档中的错误?
【发布时间】:2021-07-31 07:52:26
【问题描述】:

根据this SO question,Git 手册页是从 Git 文档自动转换的(不使用 mdocgroff),因此某些用法语法和手册页不符合 POSIX Utility Argument Syntax

例如:

man git-config

列表

git config [<file-option>] [type] --add name value

在“Synopsis”下(根据 POSIX 语法,这应该在名为“Usage”的标题下,Git 手册页中“Description”标题下的内容应该在名为“Synopsis”的标题下)和name并且value 应该出现在&lt;&gt;s 中以表明它们是占位符。

更令人困惑,

man git-rebase

列表

git rebase [-i | --interactive] [<options>] [--exec <cmd>]
               [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
       git rebase [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
               --root [<branch>]
       git rebase (--continue | --skip | --abort | --quit | --edit-todo | --show-current-patch)

根据 POSIX 语法,git rebase 可以在没有任何选项或参数的情况下成功运行,但事实并非如此。

由于 Git 文档不包含任何有关如何阅读命令行用法语法的部分,我如何理解 git rebase 的用法语法?是否应该将&lt;branch&gt; 放在[] 之外以正确表明它实际上是命令的非可选参数?

【问题讨论】:

  • git rebase 可以在没有选项或参数的情况下运行,这是一种常见用法。也许花更多时间理解内容并尝试命令将有助于理解它们。
  • @jthill 你能告诉我git rebase 在没有参数的情况下运行的用法吗?我以前从未见过。
  • @jthill 我现在看到git rebase 可以在没有参数的情况下运行,尽管我发现自动模式很危险(更多信息请参见stackoverflow.com/questions/50643026/…)。但是,问题仍然存在于 git config 的手册页上。如果使用语法不一致,而我们要阅读命令描述,则不需要使用语法。事实上,它增加了混乱。

标签: git command-line syntax


【解决方案1】:

Git 努力在其手册页中使用准确的语法描述,尽管可能有人犯了错误。 [] 语法表示可选参数,括号表示需要其中一个选项的用法。这可能是也可能不是 POSIX 的做法,但通常每个 Unix 系统对于如何格式化手册页的标准略有不同,因此应该会出现一些差异。如果你对改变有强烈的感觉,你可以在 Git 列表上提出这样的改变,然后发送一些补丁。

正如 jthill 所指出的,可以在没有选项或参数的情况下使用 git rebase。在您的上下文中,它可能有用,也可能没有用。就个人而言,我更喜欢在使用 Git 进行 rebase 时更加明确,所以我不使用那种语法,但这是个人偏好;即使我选择不这样做,该命令也可以这样使用。

【讨论】:

  • 谢谢!是的,不幸的是,我在发布此内容后意识到我对 rebase 的看法是错误的(对不起@jthill)。我认为git-config 的潜在错误很小,但我想提请适当的人注意,因为我提出了它。 Git 列表在哪里? ([git-scm.com/] 或 [github.com/git/git] 说吗?(如果rebase 的文档有误,我认为我的问题会更好。)
  • 另一个问题:如果分支的上游(比如topic)是远程(比如origin/topic),将通过在@ 上运行裸git rebase 自动重新定位到origin/topic 987654332@分支构成改写发表历史?
  • 邮件列表列出on the website。任何不是无操作的变基都会重写历史。因此,如果您发布了旧版本并发布了重新调整的版本,那么您正在重写已发布的历史。有时没关系,有时则不然。
猜你喜欢
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
相关资源
最近更新 更多