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