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