Documentation / git-help.txton commit tree-walk: store object_id in a separate member (ea82b2a)
   1git-help(1)
   2===========
   3
   4NAME
   5----
   6git-help - Display help information about Git
   7
   8SYNOPSIS
   9--------
  10[verse]
  11'git help' [-a|--all [--[no-]verbose]] [-g|--guide]
  12           [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]
  13
  14DESCRIPTION
  15-----------
  16
  17With no options and no COMMAND or GUIDE given, the synopsis of the 'git'
  18command and a list of the most commonly used Git commands are printed
  19on the standard output.
  20
  21If the option `--all` or `-a` is given, all available commands are
  22printed on the standard output.
  23
  24If the option `--guide` or `-g` is given, a list of the useful
  25Git guides is also printed on the standard output.
  26
  27If a command, or a guide, is given, a manual page for that command or
  28guide is brought up. The 'man' program is used by default for this
  29purpose, but this can be overridden by other options or configuration
  30variables.
  31
  32If an alias is given, git shows the definition of the alias on
  33standard output. To get the manual page for the aliased command, use
  34`git COMMAND --help`.
  35
  36Note that `git --help ...` is identical to `git help ...` because the
  37former is internally converted into the latter.
  38
  39To display the linkgit:git[1] man page, use `git help git`.
  40
  41This page can be displayed with 'git help help' or `git help --help`
  42
  43OPTIONS
  44-------
  45-a::
  46--all::
  47        Prints all the available commands on the standard output. This
  48        option overrides any given command or guide name.
  49
  50--verbose::
  51        When used with `--all` print description for all recognized
  52        commands. This is the default.
  53
  54-c::
  55--config::
  56        List all available configuration variables. This is a short
  57        summary of the list in linkgit:git-config[1].
  58
  59-g::
  60--guides::
  61        Prints a list of useful guides on the standard output. This
  62        option overrides any given command or guide name.
  63
  64-i::
  65--info::
  66        Display manual page for the command in the 'info' format. The
  67        'info' program will be used for that purpose.
  68
  69-m::
  70--man::
  71        Display manual page for the command in the 'man' format. This
  72        option may be used to override a value set in the
  73        `help.format` configuration variable.
  74+
  75By default the 'man' program will be used to display the manual page,
  76but the `man.viewer` configuration variable may be used to choose
  77other display programs (see below).
  78
  79-w::
  80--web::
  81        Display manual page for the command in the 'web' (HTML)
  82        format. A web browser will be used for that purpose.
  83+
  84The web browser can be specified using the configuration variable
  85`help.browser`, or `web.browser` if the former is not set. If none of
  86these config variables is set, the 'git web{litdd}browse' helper script
  87(called by 'git help') will pick a suitable default. See
  88linkgit:git-web{litdd}browse[1] for more information about this.
  89
  90CONFIGURATION VARIABLES
  91-----------------------
  92
  93help.format
  94~~~~~~~~~~~
  95
  96If no command-line option is passed, the `help.format` configuration
  97variable will be checked. The following values are supported for this
  98variable; they make 'git help' behave as their corresponding command-
  99line option:
 100
 101* "man" corresponds to '-m|--man',
 102* "info" corresponds to '-i|--info',
 103* "web" or "html" correspond to '-w|--web'.
 104
 105help.browser, web.browser and browser.<tool>.path
 106~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 107
 108The `help.browser`, `web.browser` and `browser.<tool>.path` will also
 109be checked if the 'web' format is chosen (either by command-line
 110option or configuration variable). See '-w|--web' in the OPTIONS
 111section above and linkgit:git-web{litdd}browse[1].
 112
 113man.viewer
 114~~~~~~~~~~
 115
 116The `man.viewer` configuration variable will be checked if the 'man'
 117format is chosen. The following values are currently supported:
 118
 119* "man": use the 'man' program as usual,
 120* "woman": use 'emacsclient' to launch the "woman" mode in emacs
 121(this only works starting with emacsclient versions 22),
 122* "konqueror": use 'kfmclient' to open the man page in a new konqueror
 123tab (see 'Note about konqueror' below).
 124
 125Values for other tools can be used if there is a corresponding
 126`man.<tool>.cmd` configuration entry (see below).
 127
 128Multiple values may be given to the `man.viewer` configuration
 129variable. Their corresponding programs will be tried in the order
 130listed in the configuration file.
 131
 132For example, this configuration:
 133
 134------------------------------------------------
 135        [man]
 136                viewer = konqueror
 137                viewer = woman
 138------------------------------------------------
 139
 140will try to use konqueror first. But this may fail (for example, if
 141DISPLAY is not set) and in that case emacs' woman mode will be tried.
 142
 143If everything fails, or if no viewer is configured, the viewer specified
 144in the `GIT_MAN_VIEWER` environment variable will be tried.  If that
 145fails too, the 'man' program will be tried anyway.
 146
 147man.<tool>.path
 148~~~~~~~~~~~~~~~
 149
 150You can explicitly provide a full path to your preferred man viewer by
 151setting the configuration variable `man.<tool>.path`. For example, you
 152can configure the absolute path to konqueror by setting
 153'man.konqueror.path'. Otherwise, 'git help' assumes the tool is
 154available in PATH.
 155
 156man.<tool>.cmd
 157~~~~~~~~~~~~~~
 158
 159When the man viewer, specified by the `man.viewer` configuration
 160variables, is not among the supported ones, then the corresponding
 161`man.<tool>.cmd` configuration variable will be looked up. If this
 162variable exists then the specified tool will be treated as a custom
 163command and a shell eval will be used to run the command with the man
 164page passed as arguments.
 165
 166Note about konqueror
 167~~~~~~~~~~~~~~~~~~~~
 168
 169When 'konqueror' is specified in the `man.viewer` configuration
 170variable, we launch 'kfmclient' to try to open the man page on an
 171already opened konqueror in a new tab if possible.
 172
 173For consistency, we also try such a trick if 'man.konqueror.path' is
 174set to something like 'A_PATH_TO/konqueror'. That means we will try to
 175launch 'A_PATH_TO/kfmclient' instead.
 176
 177If you really want to use 'konqueror', then you can use something like
 178the following:
 179
 180------------------------------------------------
 181        [man]
 182                viewer = konq
 183
 184        [man "konq"]
 185                cmd = A_PATH_TO/konqueror
 186------------------------------------------------
 187
 188Note about git config --global
 189~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 190
 191Note that all these configuration variables should probably be set
 192using the `--global` flag, for example like this:
 193
 194------------------------------------------------
 195$ git config --global help.format web
 196$ git config --global web.browser firefox
 197------------------------------------------------
 198
 199as they are probably more user specific than repository specific.
 200See linkgit:git-config[1] for more information about this.
 201
 202GIT
 203---
 204Part of the linkgit:git[1] suite