man 如何找到 git 的子命令联机帮助页?

How does man find git's subcommand manpages?

在我的 linux 系统上,我可以执行 "man git log"(注意 space),这将显示 git-log(1) 的联机帮助页(带破折号),符合预期。

在我的 MacOSX 机器上,"man git log" 只显示 git(1) 的手册页。

linux 人怎么知道 "git" 和 "log" 这两个参数应该结合起来找到 "git-log" 联机帮助页?我怎样才能在 OSX 中得到相同的结果?

这是particular implementation of man used on many Linux systems. Referring to the documentation的一个特性(for man),在--no-subpages选项的描述中提到:

--no-subpages

By default, man will try to interpret pairs of manual page names given on the command line as equivalent to a single manual page name containing a hyphen or an underscore. This supports the common pattern of programs that implement a number of subcommands, allowing them to provide manual pages for each that can be accessed using similar syntax as would be used to invoke the subcommands themselves.

man 的其他实现可以做不同的事情。例如(不太好documented,但是那里如果你研究它),快速检查OSX man git status El Capitan 显示它试图找到 status 的手册页。但是,man git-status给出了手册页。