4
The git configuration file contains a number of variables that affect
5
the git command's behavior. The `.git/config` file in each repository
4
The Git configuration file contains a number of variables that affect
5
the Git commands' behavior. The `.git/config` file in each repository
6
6
is used to store the configuration for that repository, and
7
7
`$HOME/.gitconfig` is used to store a per-user configuration as
8
8
fallback values for the `.git/config` file. The file `/etc/gitconfig`
9
9
can be used to store a system-wide default configuration.
11
The configuration variables are used by both the git plumbing
11
The configuration variables are used by both the Git plumbing
12
12
and the porcelains. The variables are divided into sections, wherein
13
13
the fully qualified variable name of the variable itself is the last
14
14
dot-separated segment and the section name is everything before the last
95
95
found at the location of the include directive. If the value of the
96
96
`include.path` variable is a relative path, the path is considered to be
97
97
relative to the configuration file in which the include directive was
98
found. The value of `include.path` is subject to tilde expansion: `{tilde}/`
99
is expanded to the value of `$HOME`, and `{tilde}user/` to the specified
98
found. The value of `include.path` is subject to tilde expansion: `~/`
99
is expanded to the value of `$HOME`, and `~user/` to the specified
100
100
user's home directory. See below for examples.
140
140
can tell Git that you do not need help by setting these to 'false':
144
144
Set this variable to 'false' if you want to disable
145
'pushNonFFCurrent', 'pushNonFFDefault', and
146
'pushNonFFMatching' simultaneously.
145
'pushNonFFCurrent', 'pushNonFFDefault',
146
'pushNonFFMatching', 'pushAlreadyExists',
147
'pushFetchFirst', and 'pushNeedsForce'
147
149
pushNonFFCurrent::
148
150
Advice shown when linkgit:git-push[1] fails due to a
149
151
non-fast-forward update to the current branch.
158
160
'matching refs' explicitly (i.e. you used ':', or
159
161
specified a refspec that isn't your current branch) and
160
162
it resulted in a non-fast-forward error.
164
Shown when linkgit:git-push[1] rejects an update that
165
does not qualify for fast-forwarding (e.g., a tag.)
167
Shown when linkgit:git-push[1] rejects an update that
168
tries to overwrite a remote ref that points at an
169
object we do not have.
171
Shown when linkgit:git-push[1] rejects an update that
172
tries to overwrite a remote ref that points at an
173
object that is not a committish, or make the remote
174
ref point at an object that is not a committish.
162
Directions on how to stage/unstage/add shown in the
163
output of linkgit:git-status[1] and the template shown
164
when writing commit messages.
176
Show directions on how to proceed from the current
177
state in the output of linkgit:git-status[1], in
178
the template shown when writing commit messages in
179
linkgit:git-commit[1], and in the help message shown
180
by linkgit:git-checkout[1] when switching branch.
182
Advise to consider using the `-u` option to linkgit:git-status[1]
183
when the command takes more than 2 seconds to enumerate untracked
165
185
commitBeforeMerge::
166
186
Advice shown when linkgit:git-merge[1] refuses to
167
187
merge to avoid overwriting local changes.
168
188
resolveConflict::
169
Advices shown by various commands when conflicts
189
Advice shown by various commands when conflicts
170
190
prevent the operation from being performed.
171
191
implicitIdentity::
172
192
Advice on how to set your identity configuration when
176
196
Advice shown when you used linkgit:git-checkout[1] to
177
197
move to the detach HEAD state, to instruct how to create
178
198
a local branch after the fact.
200
Advice that shows the location of the patch file when
201
linkgit:git-am[1] fails to apply it.
201
224
core.ignorecase::
202
225
If true, this option enables various workarounds to enable
203
git to work better on filesystems that are not case sensitive,
226
Git to work better on filesystems that are not case sensitive,
204
227
like FAT. For example, if a directory listing finds
205
"makefile" when git expects "Makefile", git will assume
228
"makefile" when Git expects "Makefile", Git will assume
206
229
it is really the same file, and continue to remember it as
210
233
will probe and set core.ignorecase true if appropriate when the repository
236
core.precomposeunicode::
237
This option is only used by Mac OS implementation of Git.
238
When core.precomposeunicode=true, Git reverts the unicode decomposition
239
of filenames done by Mac OS. This is useful when sharing a repository
240
between Mac OS and Linux or Windows.
241
(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
242
When false, file names are handled fully transparent by Git,
243
which is backward compatible with older versions of Git.
213
245
core.trustctime::
214
246
If false, the ctime differences between the index and the
215
247
working tree are ignored; useful when the inode change time
217
249
crawlers and some backup systems).
218
250
See linkgit:git-update-index[1]. True by default.
253
Determines which stat fields to match between the index
254
and work tree. The user can set this to 'default' or
255
'minimal'. Default (or explicitly 'default'), is to check
256
all fields, including the sub-second part of mtime and ctime.
221
259
The commands that output paths (e.g. 'ls-files',
222
260
'diff'), when not given the `-z` option, will quote
241
If true, makes git check if converting `CRLF` is reversible when
279
If true, makes Git check if converting `CRLF` is reversible when
242
280
end-of-line conversion is active. Git will verify if a command
243
281
modifies a file in the work tree either directly or indirectly.
244
282
For example, committing a file followed by checking out the
245
283
same file should yield the original file in the work tree. If
246
284
this is not the case for the current setting of
247
`core.autocrlf`, git will reject the file. The variable can
248
be set to "warn", in which case git will only warn about an
285
`core.autocrlf`, Git will reject the file. The variable can
286
be set to "warn", in which case Git will only warn about an
249
287
irreversible conversion but continue the operation.
251
289
CRLF conversion bears a slight chance of corrupting data.
252
When it is enabled, git will convert CRLF to LF during commit and LF to
290
When it is enabled, Git will convert CRLF to LF during commit and LF to
253
291
CRLF during checkout. A file that contains a mixture of LF and
254
CRLF before the commit cannot be recreated by git. For text
292
CRLF before the commit cannot be recreated by Git. For text
255
293
files this is the right thing to do: it corrects line endings
256
294
such that we have only LF line endings in the repository.
257
295
But for binary files that are accidentally classified as text the
261
299
setting the conversion type explicitly in .gitattributes. Right
262
300
after committing you still have the original file in your work
263
301
tree and this file is not yet corrupted. You can explicitly tell
264
git that this file is binary and git will handle the file
302
Git that this file is binary and Git will handle the file
267
305
Unfortunately, the desired effect of cleaning up text files with
307
345
A "proxy command" to execute (as 'command host port') instead
308
346
of establishing direct connection to the remote server when
309
using the git protocol for fetching. If the variable value is
347
using the Git protocol for fetching. If the variable value is
310
348
in the "COMMAND for DOMAIN" format, the command is applied only
311
349
on hostnames ending with the specified domain string. This variable
312
350
may be set multiple times and is matched in the given order;
365
403
file in a ".git" subdirectory of a directory and its value differs
366
404
from the latter directory (e.g. "/path/to/.git/config" has
367
405
core.worktree set to "/different/path"), which is most likely a
368
misconfiguration. Running git commands in the "/path/to" directory will
406
misconfiguration. Running Git commands in the "/path/to" directory will
369
407
still use "/different/path" as the root of the work tree and can cause
370
408
confusion unless you know what you are doing (e.g. you are creating a
371
409
read-only snapshot of the same index to a location different from the
374
412
core.logAllRefUpdates::
375
413
Enable the reflog. Updates to a ref <ref> is logged to the file
376
414
"$GIT_DIR/logs/<ref>", by appending the new and old
377
SHA1, the date/time and the reason of the update, but
415
SHA-1, the date/time and the reason of the update, but
378
416
only when the file exists. If this configuration
379
417
variable is set to true, missing "$GIT_DIR/logs/<ref>"
380
418
file is automatically created for branch heads (i.e. under
397
435
several users in a group (making sure all the files and objects are
398
436
group-writable). When 'all' (or 'world' or 'everybody'), the
399
437
repository will be readable by all users, additionally to being
400
group-shareable. When 'umask' (or 'false'), git will use permissions
438
group-shareable. When 'umask' (or 'false'), Git will use permissions
401
439
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
402
440
files in the repository will have this mode value. '0xxx' will override
403
441
user's umask value (whereas the other options will only override
408
446
See linkgit:git-init[1]. False by default.
410
448
core.warnAmbiguousRefs::
411
If true, git will warn you if the ref name you passed it is ambiguous
412
and might match multiple refs in the .git/refs/ tree. True by default.
449
If true, Git will warn you if the ref name you passed it is ambiguous
450
and might match multiple refs in the repository. True by default.
414
452
core.compression::
415
453
An integer -1..9, indicating a default compression level.
481
519
core.excludesfile::
482
520
In addition to '.gitignore' (per-directory) and
483
'.git/info/exclude', git looks into this file for patterns
521
'.git/info/exclude', Git looks into this file for patterns
484
522
of files which are not meant to be tracked. "`~/`" is expanded
485
523
to the value of `$HOME` and "`~user/`" to the specified user's
486
home directory. See linkgit:gitignore[5].
524
home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
525
If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore
526
is used instead. See linkgit:gitignore[5].
489
529
Some commands (e.g. svn and http interfaces) that interactively
497
537
core.attributesfile::
498
538
In addition to '.gitattributes' (per-directory) and
499
'.git/info/attributes', git looks into this file for attributes
539
'.git/info/attributes', Git looks into this file for attributes
500
540
(see linkgit:gitattributes[5]). Path expansions are made the same
501
way as for `core.excludesfile`.
541
way as for `core.excludesfile`. Its default value is
542
$XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
543
set or empty, $HOME/.config/git/attributes is used instead.
504
546
Commands such as `commit` and `tag` that lets you edit
506
548
variable when it is set, and the environment variable
507
549
`GIT_EDITOR` is not set. See linkgit:git-var[1].
552
Commands such as `commit` and `tag` that lets you edit
553
messages consider a line that begins with this character
554
commented, and removes them after the editor returns
509
557
sequence.editor::
510
Text editor used by `git rebase -i` for editing the rebase insn file.
558
Text editor used by `git rebase -i` for editing the rebase instruction file.
511
559
The value is meant to be interpreted by the shell when it is used.
512
560
It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.
513
561
When not configured the default commit message editor is used instead.
516
The command that git will use to paginate output. Can
564
The command that Git will use to paginate output. Can
517
565
be overridden with the `GIT_PAGER` environment
518
variable. Note that git sets the `LESS` environment
566
variable. Note that Git sets the `LESS` environment
519
567
variable to `FRSX` if it is unset when it runs the
520
568
pager. One can change these settings by setting the
521
569
`LESS` variable to some other value. Alternately,
522
570
these settings can be overridden on a project or
523
571
global basis by setting the `core.pager` option.
524
Setting `core.pager` has no affect on the `LESS`
572
Setting `core.pager` has no effect on the `LESS`
525
573
environment variable behaviour above, so if you want
526
to override git's default settings this way, you need
574
to override Git's default settings this way, you need
527
575
to be explicit. For example, to disable the S option
528
576
in a backward compatible manner, set `core.pager`
529
to `less -+$LESS -FRX`. This will be passed to the
530
shell by git, which will translate the final command to
531
`LESS=FRSX less -+FRSX -FRX`.
577
to `less -+S`. This will be passed to the shell by
578
Git, which will translate the final command to
579
`LESS=FRSX less -+S`.
533
581
core.whitespace::
534
582
A comma separated list of common whitespace problems to
542
590
* `space-before-tab` treats a space character that appears immediately
543
591
before a tab character in the initial indent part of the line as an
544
592
error (enabled by default).
545
* `indent-with-non-tab` treats a line that is indented with 8 or more
546
space characters as an error (not enabled by default).
593
* `indent-with-non-tab` treats a line that is indented with space
594
characters instead of the equivalent tabs as an error (not enabled by
547
596
* `tab-in-indent` treats a tab character in the initial indent part of
548
597
the line as an error (not enabled by default).
549
598
* `blank-at-eof` treats blank lines added at the end of file as an error
555
604
does not trigger if the character before such a carriage-return
556
605
is not a whitespace (not enabled by default).
557
606
* `tabwidth=<n>` tells how many character positions a tab occupies; this
558
is relevant for `indent-with-non-tab` and when git fixes `tab-in-indent`
607
is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
559
608
errors. The default tab width is 8. Allowed values are 1 to 63.
561
610
core.fsyncobjectfiles::
572
621
This can speed up operations like 'git diff' and 'git status' especially
573
622
on filesystems like NFS that have weak caching semantics and thus
574
relatively high IO latencies. With this set to 'true', git will do the
623
relatively high IO latencies. With this set to 'true', Git will do the
575
624
index comparison to the filesystem data in parallel, allowing
576
625
overlapping IO's.
607
656
add.ignoreErrors::
608
657
Tells 'git add' to continue adding files when some files cannot be
609
658
added due to indexing errors. Equivalent to the '--ignore-errors'
610
option of linkgit:git-add[1]. Older versions of git accept only
659
option of linkgit:git-add[1]. Older versions of Git accept only
611
660
`add.ignore-errors`, which does not follow the usual naming
612
convention for configuration variables. Newer versions of git
661
convention for configuration variables. Newer versions of Git
613
662
honor `add.ignoreErrors` as well.
617
666
after defining "alias.last = cat-file commit HEAD", the invocation
618
667
"git last" is equivalent to "git cat-file commit HEAD". To avoid
619
668
confusion and troubles with script usage, aliases that
620
hide existing git commands are ignored. Arguments are split by
669
hide existing Git commands are ignored. Arguments are split by
621
670
spaces, the usual shell quoting and escaping is supported.
622
671
quote pair and a backslash can be used to quote them.
665
714
branch.autosetuprebase::
666
715
When a new branch is created with 'git branch' or 'git checkout'
667
that tracks another branch, this variable tells git to set
716
that tracks another branch, this variable tells Git to set
668
717
up pull to rebase instead of merge (see "branch.<name>.rebase").
669
718
When `never`, rebase is never automatically set to true.
670
719
When `local`, rebase is set to true for tracked branches of
678
727
This option defaults to never.
680
729
branch.<name>.remote::
681
When in branch <name>, it tells 'git fetch' and 'git push' which
682
remote to fetch from/push to. It defaults to `origin` if no remote is
683
configured. `origin` is also used if you are not on any branch.
730
When on branch <name>, it tells 'git fetch' and 'git push'
731
which remote to fetch from/push to. The remote to push to
732
may be overridden with `remote.pushdefault` (for all branches).
733
The remote to push to, for the current branch, may be further
734
overridden by `branch.<name>.pushremote`. If no remote is
735
configured, or if you are not on any branch, it defaults to
736
`origin` for fetching and `remote.pushdefault` for pushing.
738
branch.<name>.pushremote::
739
When on branch <name>, it overrides `branch.<name>.remote` for
740
pushing. It also overrides `remote.pushdefault` for pushing
741
from branch <name>. When you pull from one place (e.g. your
742
upstream) and push to another place (e.g. your own publishing
743
repository), you would want to set `remote.pushdefault` to
744
specify the remote to push to for all branches, and use this
745
option to override it for a specific branch.
685
747
branch.<name>.merge::
686
748
Defines, together with branch.<name>.remote, the upstream branch
716
778
it unless you understand the implications (see linkgit:git-rebase[1]
781
branch.<name>.description::
782
Branch description, can be edited with
783
`git branch --edit-description`. Branch description is
784
automatically added in the format-patch cover letter or
785
request-pull summary.
719
787
browser.<tool>.cmd::
720
788
Specify the command to invoke the specified browser. The
721
789
specified command is evaluated in shell with the URLs passed
739
807
color.branch.<slot>::
740
808
Use customized color for branch coloration. `<slot>` is one of
741
809
`current` (the current branch), `local` (a local branch),
742
`remote` (a remote-tracking branch in refs/remotes/), `plain` (other
810
`remote` (a remote-tracking branch in refs/remotes/),
811
`upstream` (upstream tracking branch), `plain` (other
745
814
The value for these configuration variables is a list of colors (at most
839
908
one of `header` (the header text of the status message),
840
909
`added` or `updated` (files which are added but not committed),
841
910
`changed` (files which are changed but not added in the index),
842
`untracked` (files which are not tracked by git),
911
`untracked` (files which are not tracked by Git),
843
912
`branch` (the current branch), or
844
913
`nobranch` (the color the 'no branch' warning is shown in, defaulting
845
914
to red). The values of these variables may be specified as in
853
922
to `always` if you want all output not intended for machine
854
923
consumption to use color, to `true` or `auto` if you want such
855
924
output to use color when written to the terminal, or to `false` or
856
`never` if you prefer git commands not to use color unless enabled
925
`never` if you prefer Git commands not to use color unless enabled
857
926
explicitly with some other configuration or the `--color` option.
929
Specify whether supported commands should output in columns.
930
This variable consists of a list of tokens separated by spaces
935
always show in columns
937
never show in columns
939
show in columns if the output is to the terminal
941
fill columns before rows (default)
943
fill rows before columns
947
make unequal size columns to utilize more space
949
make equal size columns
952
This option defaults to 'never'.
955
Specify whether to output branch listing in `git branch` in columns.
956
See `column.ui` for details.
959
Specify whether to output untracked files in `git status` in columns.
960
See `column.ui` for details.
963
Specify whether to output tag listing in `git tag` in columns.
964
See `column.ui` for details.
967
This setting overrides the default of the `--cleanup` option in
968
`git commit`. See linkgit:git-commit[1] for details. Changing the
969
default can be useful when you always want to keep lines that begin
970
with comment character `#` in your log message, in which case you
971
would do `git config commit.cleanup whitespace` (note that you will
972
have to remove the help lines that begin with `#` in the commit log
973
template yourself, if you do this).
860
976
A boolean to enable/disable inclusion of status information in the
861
977
commit message template when using an editor to prepare the commit
906
1022
difftool.prompt::
907
1023
Prompt before each invocation of the diff tool.
910
A POSIX Extended Regular Expression used to determine what is a "word"
911
when performing word-by-word difference calculations. Character
912
sequences that match the regular expression are "words", all other
913
characters are *ignorable* whitespace.
915
1025
fetch.recurseSubmodules::
916
1026
This option can be either set to a boolean value or to 'on-demand'.
917
1027
Setting it to a boolean changes the behavior of fetch and pull to
929
1039
is used instead.
931
1041
fetch.unpackLimit::
932
If the number of objects fetched over the git native
1042
If the number of objects fetched over the Git native
933
1043
transfer is below this
934
1044
limit, then the objects will be unpacked into loose object
935
1045
files. However if the number of received objects equals or
994
1104
value disables threading.
996
1106
format.signoff::
997
A boolean value which lets you enable the `-s/--signoff` option of
998
format-patch by default. *Note:* Adding the Signed-off-by: line to a
999
patch should be a conscious act and means that you certify you have
1000
the rights to submit this work under the same open source license.
1001
Please see the 'SubmittingPatches' document for further discussion.
1107
A boolean value which lets you enable the `-s/--signoff` option of
1108
format-patch by default. *Note:* Adding the Signed-off-by: line to a
1109
patch should be a conscious act and means that you certify you have
1110
the rights to submit this work under the same open source license.
1111
Please see the 'SubmittingPatches' document for further discussion.
1113
format.coverLetter::
1114
A boolean that controls whether to generate a cover-letter when
1115
format-patch is invoked, but in addition can be set to "auto", to
1116
generate a cover-letter only when there's more than one patch.
1003
1118
filter.<driver>.clean::
1004
1119
The command which is used to convert the content of a worktree
1082
1197
gitcvs.usecrlfattr::
1083
1198
If true, the server will look up the end-of-line conversion
1084
1199
attributes for files to determine the '-k' modes to use. If
1085
the attributes force git to treat a file as text,
1200
the attributes force Git to treat a file as text,
1086
1201
the '-k' mode will be left blank so CVS clients will
1087
1202
treat it as text. If they suppress text conversion, the file
1088
1203
will be set with '-kb' mode, which suppresses any newline munging
1103
1218
gitcvs.dbname::
1104
1219
Database used by git-cvsserver to cache revision information
1105
derived from the git repository. The exact meaning depends on the
1220
derived from the Git repository. The exact meaning depends on the
1106
1221
used database driver, for SQLite (which is the default driver) this
1107
1222
is a filename. Supports variable substitution (see
1108
1223
linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
1111
1226
gitcvs.dbdriver::
1112
1227
Used Perl DBI driver. You can specify any available driver
1113
for this here, but it might not work. git-cvsserver is tested
1228
for this here, but it might not work. git-cvsserver is tested
1114
1229
with 'DBD::SQLite', reported to work with 'DBD::Pg', and
1115
1230
reported *not* to work with 'DBD::mysql'. Experimental feature.
1116
1231
May not contain double colons (`:`). Default: 'SQLite'.
1155
1270
grep.lineNumber::
1156
1271
If set to true, enable '-n' option by default.
1274
Set the default matching behavior. Using a value of 'basic', 'extended',
1275
'fixed', or 'perl' will enable the '--basic-regexp', '--extended-regexp',
1276
'--fixed-strings', or '--perl-regexp' option accordingly, while the
1277
value 'default' will return to the default matching behavior.
1158
1279
grep.extendedRegexp::
1159
If set to true, enable '--extended-regexp' option by default.
1280
If set to true, enable '--extended-regexp' option by default. This
1281
option is ignored when the 'grep.patternType' option is set to a value
1282
other than 'default'.
1162
1285
Use this custom program instead of "gpg" found on $PATH when
1292
1415
value is 0 - the command will be just shown but not executed.
1293
1416
This is the default.
1419
Specify the path where the HTML documentation resides. File system paths
1420
and URLs are supported. HTML pages will be prefixed with this path when
1421
help is displayed in the 'web' format. This defaults to the documentation
1422
path of your Git installation.
1296
1425
Override the HTTP proxy, normally configured using the 'http_proxy',
1297
1426
'https_proxy', and 'all_proxy' environment variables (see
1301
1430
http.cookiefile::
1302
1431
File containing previously stored cookie lines which should be used
1303
in the git http session, if they match the server. The file format
1432
in the Git http session, if they match the server. The file format
1304
1433
of the file to read cookies from should be plain HTTP headers or
1305
1434
the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
1306
1435
NOTE that the file specified with http.cookiefile is only used as
1324
1453
http.sslCertPasswordProtected::
1325
Enable git's password prompt for the SSL certificate. Otherwise
1454
Enable Git's password prompt for the SSL certificate. Otherwise
1326
1455
OpenSSL will prompt the user, possibly many times, if the
1327
1456
certificate or private key is encrypted. Can be overridden by the
1328
1457
'GIT_SSL_CERT_PASSWORD_PROTECTED' environment variable.
1337
1466
with when fetching or pushing over HTTPS. Can be overridden
1338
1467
by the 'GIT_SSL_CAPATH' environment variable.
1470
Attempt to use AUTH SSL/TLS and encrypted data transfers
1471
when connecting via regular FTP protocol. This might be needed
1472
if the FTP server requires it for security reasons or you wish
1473
to connect securely whenever remote FTP server supports it.
1474
Default is false since it might trigger certificate verification
1475
errors on misconfigured servers.
1340
1477
http.maxRequests::
1341
1478
How many HTTP requests to launch in parallel. Can be overridden
1342
1479
by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
1370
1507
http.useragent::
1371
1508
The HTTP USER_AGENT string presented to an HTTP server. The default
1372
value represents the version of the client git such as git/1.7.1.
1509
value represents the version of the client Git such as git/1.7.1.
1373
1510
This option allows you to override this value to a more common value
1374
1511
such as Mozilla/4.0. This may be necessary, for instance, if
1375
1512
connecting through a firewall that restricts HTTP connections to a set
1377
1514
Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.
1379
1516
i18n.commitEncoding::
1380
Character encoding the commit messages are stored in; git itself
1517
Character encoding the commit messages are stored in; Git itself
1381
1518
does not care per se, but this information is necessary e.g. when
1382
1519
importing commits from emails or in the gitk graphical history
1383
1520
browser (and possibly at other places in the future or in other
1450
1587
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
1451
1588
normally hide the root commit will now show it. True by default.
1591
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
1592
linkgit:git-whatchanged[1] assume `--use-mailmap`.
1454
1595
The location of an augmenting mailmap file. The default
1455
1596
mailmap, located in the root of the repository, is loaded
1458
1599
subdirectory, or somewhere outside of the repository itself.
1459
1600
See linkgit:git-shortlog[1] and linkgit:git-blame[1].
1603
Like `mailmap.file`, but consider the value as a reference to a
1604
blob in the repository. If both `mailmap.file` and
1605
`mailmap.blob` are given, both are parsed, with entries from
1606
`mailmap.file` taking precedence. In a bare repository, this
1607
defaults to `HEAD:.mailmap`. In a non-bare repository, it
1462
1611
Specify the programs that may be used to display help in the
1463
1612
'man' format. See linkgit:git-help[1].
1503
1652
`true` (i.e. keep the backup files).
1505
1654
mergetool.keepTemporaries::
1506
When invoking a custom merge tool, git uses a set of temporary
1655
When invoking a custom merge tool, Git uses a set of temporary
1507
1656
files to pass to the tool. If the tool returns an error and this
1508
1657
variable is set to `true`, then these temporary files will be
1509
1658
preserved, otherwise they will be removed after the tool has
1532
1681
notes.rewrite.<command>::
1533
1682
When rewriting commits with <command> (currently `amend` or
1534
`rebase`) and this variable is set to `true`, git
1683
`rebase`) and this variable is set to `true`, Git
1535
1684
automatically copies your notes from the original to the
1536
1685
rewritten commit. Defaults to `true`, but see
1537
1686
"notes.rewriteRef" below.
1611
1760
warning. This is meant to reduce packing time on multiprocessor
1612
1761
machines. The required amount of memory for the delta search window
1613
1762
is however multiplied by the number of threads.
1614
Specifying 0 will cause git to auto-detect the number of CPU's
1763
Specifying 0 will cause Git to auto-detect the number of CPU's
1615
1764
and set the number of threads accordingly.
1617
1766
pack.indexVersion::
1623
1772
and this config option ignored whenever the corresponding pack is
1624
1773
larger than 2 GB.
1626
If you have an old git that does not understand the version 2 `*.idx` file,
1775
If you have an old Git that does not understand the version 2 `*.idx` file,
1627
1776
cloning or fetching over a non native protocol (e.g. "http" and "rsync")
1628
1777
that will copy both `*.pack` file and corresponding `*.idx` file from the
1629
1778
other side may give you a repository that cannot be accessed with your
1630
older version of git. If the `*.pack` file is smaller than 2 GB, however,
1779
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
1631
1780
you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
1632
1781
the `*.idx` file.
1644
1793
If the value is boolean, turns on or off pagination of the
1645
output of a particular git subcommand when writing to a tty.
1794
output of a particular Git subcommand when writing to a tty.
1646
1795
Otherwise, turns on pagination for the subcommand using the
1647
1796
pager specified by the value of `pager.<cmd>`. If `--paginate`
1648
1797
or `--no-pager` is specified on the command line, it takes
1677
1826
The default merge strategy to use when pulling a single branch.
1680
Defines the action git push should take if no refspec is given
1829
Defines the action `git push` should take if no refspec is given
1681
1830
on the command line, no refspec is configured in the remote, and
1682
1831
no refspec is implied by any of the options given on the command
1683
1832
line. Possible values are:
1685
1835
* `nothing` - do not push anything.
1686
* `matching` - push all matching branches.
1687
All branches having the same name in both ends are considered to be
1688
matching. This is the default.
1689
* `upstream` - push the current branch to its upstream branch.
1690
* `tracking` - deprecated synonym for `upstream`.
1836
* `matching` - push all branches having the same name in both ends.
1837
This is for those who prepare all the branches into a publishable
1838
shape and then push them out with a single command. It is not
1839
appropriate for pushing into a repository shared by multiple users,
1840
since locally stalled branches will attempt a non-fast forward push
1841
if other users updated the branch.
1843
This is currently the default, but Git 2.0 will change the default
1845
* `upstream` - push the current branch to its upstream branch
1846
(`tracking` is a deprecated synonym for this).
1847
With this, `git push` will update the same remote ref as the one which
1848
is merged by `git pull`, making `push` and `pull` symmetrical.
1849
See "branch.<name>.merge" for how to configure the upstream branch.
1850
* `simple` - like `upstream`, but refuses to push if the upstream
1851
branch's name is different from the local one. This is the safest
1852
option and is well-suited for beginners. It will become the default
1691
1854
* `current` - push the current branch to a branch of the same name.
1857
The `simple`, `current` and `upstream` modes are for those who want to
1858
push out a single branch after finishing work, even when the other
1859
branches are not yet ready to be pushed out. If you are working with
1860
other people to push into the same shared repository, you would want
1861
to use one of these.
1694
1864
Whether to show a diffstat of what changed upstream since the last
1742
1912
even if that push is forced. This configuration variable is
1743
1913
set when initializing a shared repository.
1916
String(s) `receive-pack` uses to decide which refs to omit
1917
from its initial advertisement. Use more than one
1918
definitions to specify multiple prefix strings. A ref that
1919
are under the hierarchies listed on the value of this
1920
variable is excluded, and is hidden when responding to `git
1921
push`, and an attempt to update or delete a hidden ref by
1922
`git push` is rejected.
1745
1924
receive.updateserverinfo::
1746
1925
If set to true, git-receive-pack will run git-update-server-info
1747
1926
after receiving data from git-push and updating refs.
1928
remote.pushdefault::
1929
The remote to push to by default. Overrides
1930
`branch.<name>.remote` for all branches, and is overridden by
1931
`branch.<name>.pushremote` for specific branches.
1749
1933
remote.<name>.url::
1750
1934
The URL of a remote repository. See linkgit:git-fetch[1] or
1751
1935
linkgit:git-push[1].
1807
1991
repack.usedeltabaseoffset::
1808
1992
By default, linkgit:git-repack[1] creates packs that use
1809
1993
delta-base offset. If you need to share your repository with
1810
git older than version 1.4.4, either directly or via a dumb
1994
Git older than version 1.4.4, either directly or via a dumb
1811
1995
protocol such as http, then you need to set this option to
1812
"false" and repack. Access from old git versions over the
1996
"false" and repack. Access from old Git versions over the
1813
1997
native protocol are unaffected by this option.
1815
1999
rerere.autoupdate::
1878
2063
status.relativePaths::
1879
2064
By default, linkgit:git-status[1] shows paths relative to the
1880
2065
current directory. Setting this variable to `false` shows paths
1881
relative to the repository root (this was the default for git
2066
relative to the repository root (this was the default for Git
1882
2067
prior to v1.5.4).
1884
2069
status.showUntrackedFiles::
1916
2101
URL and other values found in the `.gitmodules` file. See
1917
2102
linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
2104
submodule.<name>.branch::
2105
The remote branch name for a submodule, used by `git submodule
2106
update --remote`. Set this option to override the value found in
2107
the `.gitmodules` file. See linkgit:git-submodule[1] and
2108
linkgit:gitmodules[5] for details.
1919
2110
submodule.<name>.fetchRecurseSubmodules::
1920
2111
This option can be used to control recursive fetching of this
1921
2112
submodule. It can be overridden by using the --[no-]recurse-submodules
1948
2139
not set, the value of this variable is used instead.
1949
2140
Defaults to false.
2143
This variable can be used to set both `receive.hiderefs`
2144
and `uploadpack.hiderefs` at the same time to the same
2145
values. See entries for these other variables.
1951
2147
transfer.unpackLimit::
1952
2148
When `fetch.unpackLimit` or `receive.unpackLimit` are
1953
2149
not set, the value of this variable is used instead.
1954
2150
The default value is 100.
2152
uploadpack.hiderefs::
2153
String(s) `upload-pack` uses to decide which refs to omit
2154
from its initial advertisement. Use more than one
2155
definitions to specify multiple prefix strings. A ref that
2156
are under the hierarchies listed on the value of this
2157
variable is excluded, and is hidden from `git ls-remote`,
2158
`git fetch`, etc. An attempt to fetch a hidden ref by `git
2159
fetch` will fail. See also `uploadpack.allowtipsha1inwant`.
2161
uploadpack.allowtipsha1inwant::
2162
When `uploadpack.hiderefs` is in effect, allow `upload-pack`
2163
to accept a fetch request that asks for an object at the tip
2164
of a hidden ref (by default, such a request is rejected).
2165
see also `uploadpack.hiderefs`.
1956
2167
url.<base>.insteadOf::
1957
2168
Any URL that starts with this value will be rewritten to
1958
2169
start, instead, with <base>. In cases where some site serves a
1959
2170
large number of repositories, and serves them with multiple
1960
2171
access methods, and some users need to use different access
1961
2172
methods, this feature allows people to specify any of the
1962
equivalent URLs and have git automatically rewrite the URL to
2173
equivalent URLs and have Git automatically rewrite the URL to
1963
2174
the best alternative for the particular user, even for a
1964
2175
never-before-seen repository on the site. When more than one
1965
2176
insteadOf strings match a given URL, the longest match is used.
1970
2181
resulting URL will be pushed to. In cases where some site serves
1971
2182
a large number of repositories, and serves them with multiple
1972
2183
access methods, some of which do not allow push, this feature
1973
allows people to specify a pull-only URL and have git
2184
allows people to specify a pull-only URL and have Git
1974
2185
automatically use an appropriate URL to push, even for a
1975
2186
never-before-seen repository on the site. When more than one
1976
2187
pushInsteadOf strings match a given URL, the longest match is
1977
used. If a remote has an explicit pushurl, git will ignore this
2188
used. If a remote has an explicit pushurl, Git will ignore this
1978
2189
setting for that remote.