How does man find git's subcommand manpages?

On my linux system, I can do “man git log” (note the space), and this will show me the manpage for git-log(1) (with a dash), as expected.

On my MacOSX machine, “man git log” only shows the manual page for git(1).

  • How to find out parent revisions of an in-progress merge?
  • Push Git branches directly into a live server directory so files are seen live
  • Is it possible to make .gitignore changed according to environment variables
  • git branch permissions
  • How to send pull request from my fork to another fork?
  • Is it possible to keep an unversioned file in a git repository
  • How does the linux man know that the two arguments “git” and “log” should be combined to find the “git-log” manpage? How would I get the same result in OSX?

  • Update files from an exported Git repository offline
  • Merges between two branches in two directions - any good reason or completely forbid?
  • git - new user trying to do pull and getting some confusing messages
  • Deploy git branches
  • How do I apply rejected hunks after fixing them?
  • PHP content management system which tracks content through git
  • One Solution collect form web for “How does man find git's subcommand manpages?”

    This is a feature of the particular implementation of man used on many Linux systems. Referring to the documentation (for man), it is mentioned in the description of the --no-subpages option:


    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.

    Other implementations of man can do different things. For instance (not well documented, but there if you study it), a quick check for man git status on OSX El Capitan shows it tries to find a manual page for status. However, man git-status gives a manual page.

    Git Baby is a git and github fan, let's start git clone.