~ubuntu-branches/debian/sid/git/sid

« back to all changes in this revision

Viewing changes to Documentation/config.txt

  • Committer: Package Import Robot
  • Author(s): Jonathan Nieder
  • Date: 2013-06-12 07:50:53 UTC
  • mfrom: (1.2.19) (2.1.31 experimental)
  • Revision ID: package-import@ubuntu.com-20130612075053-uue9xe0dq0rvm44y
Tags: 1:1.8.3.1-1
* merge branch debian-experimental
* new upstream point release (see RelNotes/1.8.3.1.txt).
* debian/watch: use xz-compressed tarballs from kernel.org.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
CONFIGURATION FILE
2
2
------------------
3
3
 
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.
10
10
 
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.
101
101
 
102
102
Example
140
140
        can tell Git that you do not need help by setting these to 'false':
141
141
+
142
142
--
143
 
        pushNonFastForward::
 
143
        pushUpdateRejected::
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'
 
148
                simultaneously.
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.
 
163
        pushAlreadyExists::
 
164
                Shown when linkgit:git-push[1] rejects an update that
 
165
                does not qualify for fast-forwarding (e.g., a tag.)
 
166
        pushFetchFirst::
 
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.
 
170
        pushNeedsForce::
 
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.
161
175
        statusHints::
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.
 
181
        statusUoption::
 
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
 
184
                files.
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.
 
199
        amWorkDir::
 
200
                Advice that shows the location of the patch file when
 
201
                linkgit:git-am[1] fails to apply it.
179
202
--
180
203
 
181
204
core.fileMode::
200
223
 
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
207
230
        "Makefile".
208
231
+
210
233
will probe and set core.ignorecase true if appropriate when the repository
211
234
is created.
212
235
 
 
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.
 
244
 
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.
219
251
 
 
252
core.checkstat::
 
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.
 
257
 
220
258
core.quotepath::
221
259
        The commands that output paths (e.g. 'ls-files',
222
260
        'diff'), when not given the `-z` option, will quote
238
276
        conversion.
239
277
 
240
278
core.safecrlf::
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.
250
288
+
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
265
303
appropriately.
266
304
+
267
305
Unfortunately, the desired effect of cleaning up text files with
306
344
core.gitProxy::
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.
409
447
 
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.
413
451
 
414
452
core.compression::
415
453
        An integer -1..9, indicating a default compression level.
480
518
 
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].
487
527
 
488
528
core.askpass::
489
529
        Some commands (e.g. svn and http interfaces) that interactively
496
536
 
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.
502
544
 
503
545
core.editor::
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].
508
550
 
 
551
core.commentchar::
 
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
 
555
        (default '#').
 
556
 
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.
514
562
 
515
563
core.pager::
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`.
532
580
 
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
 
595
  default).
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.
560
609
 
561
610
core.fsyncobjectfiles::
571
620
+
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.
577
626
 
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.
614
663
 
615
664
alias.*::
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.
623
672
+
664
713
 
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.
679
728
 
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.
 
737
 
 
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.
684
746
 
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]
717
779
for details).
718
780
 
 
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.
 
786
 
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
743
812
        refs).
744
813
+
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.
858
927
 
 
928
column.ui::
 
929
        Specify whether supported commands should output in columns.
 
930
        This variable consists of a list of tokens separated by spaces
 
931
        or commas:
 
932
+
 
933
--
 
934
`always`;;
 
935
        always show in columns
 
936
`never`;;
 
937
        never show in columns
 
938
`auto`;;
 
939
        show in columns if the output is to the terminal
 
940
`column`;;
 
941
        fill columns before rows (default)
 
942
`row`;;
 
943
        fill rows before columns
 
944
`plain`;;
 
945
        show in one column
 
946
`dense`;;
 
947
        make unequal size columns to utilize more space
 
948
`nodense`;;
 
949
        make equal size columns
 
950
--
 
951
+
 
952
This option defaults to 'never'.
 
953
 
 
954
column.branch::
 
955
        Specify whether to output branch listing in `git branch` in columns.
 
956
        See `column.ui` for details.
 
957
 
 
958
column.status::
 
959
        Specify whether to output untracked files in `git status` in columns.
 
960
        See `column.ui` for details.
 
961
 
 
962
column.tag::
 
963
        Specify whether to output tag listing in `git tag` in columns.
 
964
        See `column.ui` for details.
 
965
 
 
966
commit.cleanup::
 
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).
 
974
 
859
975
commit.status::
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.
908
1024
 
909
 
diff.wordRegex::
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.
914
 
 
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.
930
1040
 
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
969
1079
 
970
1080
format.signature::
971
1081
        The default for format-patch is to output a signature containing
972
 
        the git version number. Use this variable to change that default.
 
1082
        the Git version number. Use this variable to change that default.
973
1083
        Set this variable to the empty string ("") to suppress
974
1084
        signature generation.
975
1085
 
994
1104
        value disables threading.
995
1105
 
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.
 
1112
 
 
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.
1002
1117
 
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
1102
1217
 
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 (`;`).
1110
1225
 
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.
1157
1272
 
 
1273
grep.patternType::
 
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.
 
1278
 
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'.
1160
1283
 
1161
1284
gpg.program::
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.
1294
1417
 
 
1418
help.htmlpath::
 
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.
 
1423
 
1295
1424
http.proxy::
1296
1425
        Override the HTTP proxy, normally configured using the 'http_proxy',
1297
1426
        'https_proxy', and 'all_proxy' environment variables (see
1300
1429
 
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
1322
1451
        variable.
1323
1452
 
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.
1339
1468
 
 
1469
http.sslTry::
 
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.
 
1476
 
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.
1369
1506
 
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.
1378
1515
 
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.
1452
1589
 
 
1590
log.mailmap::
 
1591
        If true, makes linkgit:git-log[1], linkgit:git-show[1], and
 
1592
        linkgit:git-whatchanged[1] assume `--use-mailmap`.
 
1593
 
1453
1594
mailmap.file::
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].
1460
1601
 
 
1602
mailmap.blob::
 
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
 
1608
        defaults to empty.
 
1609
 
1461
1610
man.viewer::
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).
1504
1653
 
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
1531
1680
 
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.
1616
1765
 
1617
1766
pack.indexVersion::
1623
1772
        and this config option ignored whenever the corresponding pack is
1624
1773
        larger than 2 GB.
1625
1774
+
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.
1633
1782
 
1642
1791
 
1643
1792
pager.<cmd>::
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.
1678
1827
 
1679
1828
push.default::
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:
1684
1833
+
 
1834
--
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.
 
1842
  +
 
1843
  This is currently the default, but Git 2.0 will change the default
 
1844
  to `simple`.
 
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
 
1853
  in Git 2.0.
1691
1854
* `current` - push the current branch to a branch of the same name.
 
1855
--
 
1856
+
 
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.
1692
1862
 
1693
1863
rebase.stat::
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.
1744
1914
 
 
1915
receive.hiderefs::
 
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.
 
1923
 
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.
1748
1927
 
 
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.
 
1932
 
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].
1797
1981
        linkgit:git-fetch[1].
1798
1982
 
1799
1983
remote.<name>.vcs::
1800
 
        Setting this to a value <vcs> will cause git to interact with
 
1984
        Setting this to a value <vcs> will cause Git to interact with
1801
1985
        the remote with the git-remote-<vcs> helper.
1802
1986
 
1803
1987
remotes.<group>::
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.
1814
1998
 
1815
1999
rerere.autoupdate::
1846
2030
 
1847
2031
sendemail.aliasesfile::
1848
2032
sendemail.aliasfiletype::
 
2033
sendemail.annotate::
1849
2034
sendemail.bcc::
1850
2035
sendemail.cc::
1851
2036
sendemail.cccmd::
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).
1883
2068
 
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.
1918
2103
 
 
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.
 
2109
 
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.
1950
2141
 
 
2142
transfer.hiderefs::
 
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.
 
2146
 
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.
1955
2151
 
 
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`.
 
2160
 
 
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`.
 
2166
 
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.
1979
2190
 
1980
2191
user.email::