Merge branch 'bc/repack'
[gitweb.git] / Documentation / config.txt
index 72a33e98b2e0d7a24087b80c3e28f62a05aab439..002a06689343df9201d8c08beff8147c8a55e8b7 100644 (file)
@@ -115,7 +115,7 @@ porcelain configuration variables in the respective porcelain documentation.
 core.fileMode::
        If false, the executable bit differences between the index and
        the working copy are ignored; useful on broken filesystems like FAT.
-       See gitlink:git-update-index[1]. True by default.
+       See linkgit:git-update-index[1]. True by default.
 
 core.quotepath::
        The commands that output paths (e.g. `ls-files`,
@@ -139,10 +139,55 @@ core.autocrlf::
        "text" (i.e. be subjected to the autocrlf mechanism) is
        decided purely based on the contents.
 
+core.safecrlf::
+       If true, makes git check if converting `CRLF` as controlled by
+       `core.autocrlf` is reversible.  Git will verify if a command
+       modifies a file in the work tree either directly or indirectly.
+       For example, committing a file followed by checking out the
+       same file should yield the original file in the work tree.  If
+       this is not the case for the current setting of
+       `core.autocrlf`, git will reject the file.  The variable can
+       be set to "warn", in which case git will only warn about an
+       irreversible conversion but continue the operation.
++
+CRLF conversion bears a slight chance of corrupting data.
+autocrlf=true will convert CRLF to LF during commit and LF to
+CRLF during checkout.  A file that contains a mixture of LF and
+CRLF before the commit cannot be recreated by git.  For text
+files this is the right thing to do: it corrects line endings
+such that we have only LF line endings in the repository.
+But for binary files that are accidentally classified as text the
+conversion can corrupt data.
++
+If you recognize such corruption early you can easily fix it by
+setting the conversion type explicitly in .gitattributes.  Right
+after committing you still have the original file in your work
+tree and this file is not yet corrupted.  You can explicitly tell
+git that this file is binary and git will handle the file
+appropriately.
++
+Unfortunately, the desired effect of cleaning up text files with
+mixed line endings and the undesired effect of corrupting binary
+files cannot be distinguished.  In both cases CRLFs are removed
+in an irreversible way.  For text files this is the right thing
+to do because CRLFs are line endings, while for binary files
+converting CRLFs corrupts data.
++
+Note, this safety check does not mean that a checkout will generate a
+file identical to the original file for a different setting of
+`core.autocrlf`, but only for the current one.  For example, a text
+file with `LF` would be accepted with `core.autocrlf=input` and could
+later be checked out with `core.autocrlf=true`, in which case the
+resulting file would contain `CRLF`, although the original file
+contained `LF`.  However, in both work trees the line endings would be
+consistent, that is either all `LF` or all `CRLF`, but never mixed.  A
+file with mixed line endings would be reported by the `core.safecrlf`
+mechanism.
+
 core.symlinks::
        If false, symbolic links are checked out as small plain files that
-       contain the link text. gitlink:git-update-index[1] and
-       gitlink:git-add[1] will not change the recorded type to regular
+       contain the link text. linkgit:git-update-index[1] and
+       linkgit:git-add[1] will not change the recorded type to regular
        file. Useful on filesystems like FAT that do not support
        symbolic links. True by default.
 
@@ -163,7 +208,7 @@ core.ignoreStat::
        The working copy files are assumed to stay unchanged until you
        mark them otherwise manually - Git will not detect the file changes
        by lstat() calls. This is useful on systems where those are very
-       slow, such as Microsoft Windows.  See gitlink:git-update-index[1].
+       slow, such as Microsoft Windows.  See linkgit:git-update-index[1].
        False by default.
 
 core.preferSymlinkRefs::
@@ -176,10 +221,10 @@ core.bare::
        If true this repository is assumed to be 'bare' and has no
        working directory associated with it.  If this is the case a
        number of commands that require a working directory will be
-       disabled, such as gitlink:git-add[1] or gitlink:git-merge[1].
+       disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
 +
-This setting is automatically guessed by gitlink:git-clone[1] or
-gitlink:git-init[1] when the repository was created.  By default a
+This setting is automatically guessed by linkgit:git-clone[1] or
+linkgit:git-init[1] when the repository was created.  By default a
 repository that ends in "/.git" is assumed to be not bare (bare =
 false), while all other repositories are assumed to be bare (bare
 = true).
@@ -189,7 +234,13 @@ core.worktree::
        used in combination with repositories found automatically in
        a .git directory (i.e. $GIT_DIR is not set).
        This can be overridden by the GIT_WORK_TREE environment
-       variable and the '--work-tree' command line option.
+       variable and the '--work-tree' command line option. It can be
+       a absolute path or relative path to the directory specified by
+       --git-dir or GIT_DIR.
+       Note: If --git-dir or GIT_DIR are specified but none of
+       --work-tree, GIT_WORK_TREE and core.worktree is specified,
+       the current working directory is regarded as the top directory
+       of your working tree.
 
 core.logAllRefUpdates::
        Enable the reflog. Updates to a ref <ref> is logged to the file
@@ -216,7 +267,12 @@ core.sharedRepository::
        group-writable). When 'all' (or 'world' or 'everybody'), the
        repository will be readable by all users, additionally to being
        group-shareable. When 'umask' (or 'false'), git will use permissions
-       reported by umask(2). See gitlink:git-init[1]. False by default.
+       reported by umask(2). When '0xxx', where '0xxx' is an octal number,
+       files in the repository will have this mode value. '0xxx' will override
+       user's umask value, and thus, users with a safe umask (0077) can use
+       this option. Examples: '0660' is equivalent to 'group'. '0640' is a
+       repository that is group-readable but not group-writable.
+       See linkgit:git-init[1]. False by default.
 
 core.warnAmbiguousRefs::
        If true, git will warn you if the ref name you passed it is ambiguous
@@ -281,7 +337,7 @@ core.excludesfile::
        In addition to '.gitignore' (per-directory) and
        '.git/info/exclude', git looks into this file for patterns
        of files which are not meant to be tracked.  See
-       gitlink:gitignore[5].
+       linkgit:gitignore[5].
 
 core.editor::
        Commands such as `commit` and `tag` that lets you edit
@@ -295,8 +351,26 @@ core.pager::
        The command that git will use to paginate output.  Can be overridden
        with the `GIT_PAGER` environment variable.
 
+core.whitespace::
+       A comma separated list of common whitespace problems to
+       notice.  `git diff` will use `color.diff.whitespace` to
+       highlight them, and `git apply --whitespace=error` will
+       consider them as errors:
++
+* `trailing-space` treats trailing whitespaces at the end of the line
+  as an error (enabled by default).
+* `space-before-tab` treats a space character that appears immediately
+  before a tab character in the initial indent part of the line as an
+  error (enabled by default).
+* `indent-with-non-tab` treats a line that is indented with 8 or more
+  space characters as an error (not enabled by default).
+* `cr-at-eol` treats a carriage-return at the end of line as
+  part of the line terminator, i.e. with it, `trailing-space`
+  does not trigger if the character before such a carriage-return
+  is not a whitespace (not enabled by default).
+
 alias.*::
-       Command aliases for the gitlink:git[1] command wrapper - e.g.
+       Command aliases for the linkgit:git[1] command wrapper - e.g.
        after defining "alias.last = cat-file commit HEAD", the invocation
        "git last" is equivalent to "git cat-file commit HEAD". To avoid
        confusion and troubles with script usage, aliases that
@@ -312,14 +386,33 @@ it will be treated as a shell command.  For example, defining
 
 apply.whitespace::
        Tells `git-apply` how to handle whitespaces, in the same way
-       as the '--whitespace' option. See gitlink:git-apply[1].
+       as the '--whitespace' option. See linkgit:git-apply[1].
 
 branch.autosetupmerge::
        Tells `git-branch` and `git-checkout` to setup new branches
-       so that gitlink:git-pull[1] will appropriately merge from that
-       remote branch.  Note that even if this option is not set,
+       so that linkgit:git-pull[1] will appropriately merge from the
+       starting point branch. Note that even if this option is not set,
        this behavior can be chosen per-branch using the `--track`
-       and `--no-track` options.  This option defaults to false.
+       and `--no-track` options. The valid settings are: `false` -- no
+       automatic setup is done; `true` -- automatic setup is done when the
+       starting point is a remote branch; `always` -- automatic setup is
+       done when the starting point is either a local branch or remote
+       branch. This option defaults to true.
+
+branch.autosetuprebase::
+       When a new branch is created with `git-branch` or `git-checkout`
+       that tracks another branch, this variable tells git to set
+       up pull to rebase instead of merge (see "branch.<name>.rebase").
+       When `never`, rebase is never automatically set to true.
+       When `local`, rebase is set to true for tracked branches of
+       other local branches.
+       When `remote`, rebase is set to true for tracked branches of
+       remote branches.
+       When `always`, rebase will be set to true for all tracking
+       branches.
+       See "branch.autosetupmerge" for details on how to set up a
+       branch to track another branch.
+       This option defaults to never.
 
 branch.<name>.remote::
        When in branch <name>, it tells `git fetch` which remote to fetch.
@@ -342,25 +435,36 @@ branch.<name>.merge::
 
 branch.<name>.mergeoptions::
        Sets default options for merging into branch <name>. The syntax and
-       supported options are equal to that of gitlink:git-merge[1], but
+       supported options are equal to that of linkgit:git-merge[1], but
        option values containing whitespace characters are currently not
        supported.
 
 branch.<name>.rebase::
        When true, rebase the branch <name> on top of the fetched branch,
-       instead of merging the default branch from the default remote.
+       instead of merging the default branch from the default remote when
+       "git pull" is run.
        *NOTE*: this is a possibly dangerous operation; do *not* use
-       it unless you understand the implications (see gitlink:git-rebase[1]
+       it unless you understand the implications (see linkgit:git-rebase[1]
        for details).
 
+browser.<tool>.cmd::
+       Specify the command to invoke the specified browser. The
+       specified command is evaluated in shell with the URLs passed
+       as arguments. (See linkgit:git-web--browse[1].)
+
+browser.<tool>.path::
+       Override the path for the given tool that may be used to
+       browse HTML help (see '-w' option in linkgit:git-help[1]) or a
+       working repository in gitweb (see linkgit:git-instaweb[1]).
+
 clean.requireForce::
        A boolean to make git-clean do nothing unless given -f
        or -n.   Defaults to true.
 
 color.branch::
        A boolean to enable/disable color in the output of
-       gitlink:git-branch[1]. May be set to `true` (or `always`),
-       `false` (or `never`) or `auto`, in which case colors are used
+       linkgit:git-branch[1]. May be set to `always`,
+       `false` (or `never`) or `auto` (or `true`), in which case colors are used
        only when the output is to a terminal. Defaults to false.
 
 color.branch.<slot>::
@@ -378,17 +482,30 @@ second is the background.  The position of the attribute, if any,
 doesn't matter.
 
 color.diff::
-       When true (or `always`), always use colors in patch.
-       When false (or `never`), never.  When set to `auto`, use
-       colors only when the output is to the terminal.
+       When set to `always`, always use colors in patch.
+       When false (or `never`), never.  When set to `true` or `auto`, use
+       colors only when the output is to the terminal. Defaults to false.
 
 color.diff.<slot>::
        Use customized color for diff colorization.  `<slot>` specifies
        which part of the patch to use the specified color, and is one
        of `plain` (context text), `meta` (metainformation), `frag`
        (hunk header), `old` (removed lines), `new` (added lines),
-       `commit` (commit headers), or `whitespace` (highlighting dubious
-       whitespace).  The values of these variables may be specified as
+       `commit` (commit headers), or `whitespace` (highlighting
+       whitespace errors). The values of these variables may be specified as
+       in color.branch.<slot>.
+
+color.interactive::
+       When set to `always`, always use colors for interactive prompts
+       and displays (such as those used by "git add --interactive").
+       When false (or `never`), never.  When set to `true` or `auto`, use
+       colors only when the output is to the terminal. Defaults to false.
+
+color.interactive.<slot>::
+       Use customized color for `git add --interactive`
+       output. `<slot>` may be `prompt`, `header`, or `help`, for
+       three distinct types of normal output from interactive
+       programs.  The values of these variables may be specified as
        in color.branch.<slot>.
 
 color.pager::
@@ -397,8 +514,8 @@ color.pager::
 
 color.status::
        A boolean to enable/disable color in the output of
-       gitlink:git-status[1]. May be set to `true` (or `always`),
-       `false` (or `never`) or `auto`, in which case colors are used
+       linkgit:git-status[1]. May be set to `always`,
+       `false` (or `never`) or `auto` (or `true`), in which case colors are used
        only when the output is to a terminal. Defaults to false.
 
 color.status.<slot>::
@@ -406,12 +523,21 @@ color.status.<slot>::
        one of `header` (the header text of the status message),
        `added` or `updated` (files which are added but not committed),
        `changed` (files which are changed but not added in the index),
-       or `untracked` (files which are not tracked by git). The values of
-       these variables may be specified as in color.branch.<slot>.
+       `untracked` (files which are not tracked by git), or
+       `nobranch` (the color the 'no branch' warning is shown in, defaulting
+       to red). The values of these variables may be specified as in
+       color.branch.<slot>.
 
 commit.template::
        Specify a file to use as the template for new commit messages.
 
+color.ui::
+       When set to `always`, always use colors in all git commands which
+       are capable of colored output. When false (or `never`), never. When
+       set to `true` or `auto`, use colors only when the output is to the
+       terminal. When more specific variables of color.* are set, they always
+       take precedence over this setting. Defaults to false.
+
 diff.autorefreshindex::
        When using `git diff` to compare with work tree
        files, do not consider stat-only change as changed.
@@ -422,6 +548,13 @@ diff.autorefreshindex::
        affects only `git diff` Porcelain, and not lower level
        `diff` commands, such as `git diff-files`.
 
+diff.external::
+       If this config variable is set, diff generation is not
+       performed using the internal diff machinery, but using the
+       given command.  Note: if you want to use an external diff
+       program only on a subset of your files, you might want to
+       use linkgit:gitattributes[5] instead.
+
 diff.renameLimit::
        The number of files to consider when performing the copy/rename
        detection; equivalent to the git diff option '-l'.
@@ -439,23 +572,29 @@ fetch.unpackLimit::
        exceeds this limit then the received pack will be stored as
        a pack, after adding any missing delta bases.  Storing the
        pack from a push can make the push operation complete faster,
-       especially on slow filesystems.
+       especially on slow filesystems.  If not set, the value of
+       `transfer.unpackLimit` is used instead.
 
 format.numbered::
        A boolean which can enable sequence numbers in patch subjects.
-       Seting this option to "auto" will enable it only if there is
+       Setting this option to "auto" will enable it only if there is
        more than one patch.  See --numbered option in
-       gitlink:git-format-patch[1].
+       linkgit:git-format-patch[1].
 
 format.headers::
        Additional email headers to include in a patch to be submitted
-       by mail.  See gitlink:git-format-patch[1].
+       by mail.  See linkgit:git-format-patch[1].
 
 format.suffix::
        The default for format-patch is to output files with the suffix
        `.patch`. Use this variable to change that suffix (make sure to
        include the dot if you want it).
 
+format.pretty::
+       The default pretty format for log/show/whatchanged command,
+       See linkgit:git-log[1], linkgit:git-show[1],
+       linkgit:git-whatchanged[1].
+
 gc.aggressiveWindow::
        The window size parameter used in the delta compression
        algorithm used by 'git gc --aggressive'.  This defaults
@@ -465,14 +604,14 @@ gc.auto::
        When there are approximately more than this many loose
        objects in the repository, `git gc --auto` will pack them.
        Some Porcelain commands use this command to perform a
-       light-weight garbage collection from time to time.  Setting
-       this to 0 disables it.
+       light-weight garbage collection from time to time.  The
+       default value is 6700.  Setting this to 0 disables it.
 
 gc.autopacklimit::
        When there are more than this many packs that are not
        marked with `*.keep` file in the repository, `git gc
-       --auto` consolidates them into one larger pack.  Setting
-       this to 0 disables this.
+       --auto` consolidates them into one larger pack.  The
+       default value is 50.  Setting this to 0 disables it.
 
 gc.packrefs::
        `git gc` does not run `git pack-refs` in a bare repository by
@@ -485,6 +624,10 @@ gc.packrefs::
        at some stage, and setting this to `false` will continue to
        prevent `git pack-refs` from being run from `git gc`.
 
+gc.pruneexpire::
+       When `git gc` is run, it will call `prune --expire 2.weeks.ago`.
+       Override the grace period with this config variable.
+
 gc.reflogexpire::
        `git reflog expire` removes reflog entries older than
        this time; defaults to 90 days.
@@ -497,27 +640,27 @@ gc.reflogexpireunreachable::
 gc.rerereresolved::
        Records of conflicted merge you resolved earlier are
        kept for this many days when `git rerere gc` is run.
-       The default is 60 days.  See gitlink:git-rerere[1].
+       The default is 60 days.  See linkgit:git-rerere[1].
 
 gc.rerereunresolved::
        Records of conflicted merge you have not resolved are
        kept for this many days when `git rerere gc` is run.
-       The default is 15 days.  See gitlink:git-rerere[1].
+       The default is 15 days.  See linkgit:git-rerere[1].
 
 rerere.enabled::
        Activate recording of resolved conflicts, so that identical
        conflict hunks can be resolved automatically, should they
-       be encountered again.  gitlink:git-rerere[1] command is by
-       default enabled, but can be disabled by setting this option to
-       false.
+       be encountered again.  linkgit:git-rerere[1] command is by
+       default enabled if you create `rr-cache` directory under
+       `$GIT_DIR`, but can be disabled by setting this option to false.
 
 gitcvs.enabled::
        Whether the CVS server interface is enabled for this repository.
-       See gitlink:git-cvsserver[1].
+       See linkgit:git-cvsserver[1].
 
 gitcvs.logfile::
        Path to a log file where the CVS server interface well... logs
-       various stuff. See gitlink:git-cvsserver[1].
+       various stuff. See linkgit:git-cvsserver[1].
 
 gitcvs.allbinary::
        If true, all files are sent to the client in mode '-kb'. This
@@ -530,7 +673,7 @@ gitcvs.dbname::
        derived from the git repository. The exact meaning depends on the
        used database driver, for SQLite (which is the default driver) this
        is a filename. Supports variable substitution (see
-       gitlink:git-cvsserver[1] for details). May not contain semicolons (`;`).
+       linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
        Default: '%Ggitcvs.%m.sqlite'
 
 gitcvs.dbdriver::
@@ -539,22 +682,68 @@ gitcvs.dbdriver::
        with 'DBD::SQLite', reported to work with 'DBD::Pg', and
        reported *not* to work with 'DBD::mysql'. Experimental feature.
        May not contain double colons (`:`). Default: 'SQLite'.
-       See gitlink:git-cvsserver[1].
+       See linkgit:git-cvsserver[1].
 
 gitcvs.dbuser, gitcvs.dbpass::
        Database user and password. Only useful if setting 'gitcvs.dbdriver',
        since SQLite has no concept of database users and/or passwords.
        'gitcvs.dbuser' supports variable substitution (see
-       gitlink:git-cvsserver[1] for details).
+       linkgit:git-cvsserver[1] for details).
+
+gitcvs.dbTableNamePrefix::
+       Database table name prefix.  Prepended to the names of any
+       database tables used, allowing a single database to be used
+       for several repositories.  Supports variable substitution (see
+       linkgit:git-cvsserver[1] for details).  Any non-alphabetic
+       characters will be replaced with underscores.
 
 All gitcvs variables except for 'gitcvs.allbinary' can also be
 specified as 'gitcvs.<access_method>.<varname>' (where 'access_method'
 is one of "ext" and "pserver") to make them apply only for the given
 access method.
 
+gui.commitmsgwidth::
+       Defines how wide the commit message window is in the
+       linkgit:git-gui[1]. "75" is the default.
+
+gui.diffcontext::
+       Specifies how many context lines should be used in calls to diff
+       made by the linkgit:git-gui[1]. The default is "5".
+
+gui.matchtrackingbranch::
+       Determines if new branches created with linkgit:git-gui[1] should
+       default to tracking remote branches with matching names or
+       not. Default: "false".
+
+gui.newbranchtemplate::
+       Is used as suggested name when creating new branches using the
+       linkgit:git-gui[1].
+
+gui.pruneduringfetch::
+       "true" if linkgit:git-gui[1] should prune tracking branches when
+       performing a fetch. The default value is "false".
+
+gui.trustmtime::
+       Determines if linkgit:git-gui[1] should trust the file modification
+       timestamp or not. By default the timestamps are not trusted.
+
+gui.spellingdictionary::
+       Specifies the dictionary used for spell checking commit messages in
+       the linkgit:git-gui[1]. When set to "none" spell checking is turned
+       off.
+
+help.browser::
+       Specify the browser that will be used to display help in the
+       'web' format. See linkgit:git-help[1].
+
+help.format::
+       Override the default help format used by linkgit:git-help[1].
+       Values 'man', 'info', 'web' and 'html' are supported. 'man' is
+       the default. 'web' and 'html' are the same.
+
 http.proxy::
        Override the HTTP proxy, normally configured using the 'http_proxy'
-       environment variable (see gitlink:curl[1]).  This can be overridden
+       environment variable (see linkgit:curl[1]).  This can be overridden
        on a per-remote basis; see remote.<name>.proxy
 
 http.sslVerify::
@@ -603,58 +792,97 @@ i18n.commitEncoding::
        does not care per se, but this information is necessary e.g. when
        importing commits from emails or in the gitk graphical history
        browser (and possibly at other places in the future or in other
-       porcelains). See e.g. gitlink:git-mailinfo[1]. Defaults to 'utf-8'.
+       porcelains). See e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'.
 
 i18n.logOutputEncoding::
        Character encoding the commit messages are converted to when
        running `git-log` and friends.
 
-log.showroot::
-       If true, the initial commit will be shown as a big creation event.
-       This is equivalent to a diff against an empty tree.
-       Tools like gitlink:git-log[1] or gitlink:git-whatchanged[1], which
-       normally hide the root commit will now show it. True by default.
+instaweb.browser::
+       Specify the program that will be used to browse your working
+       repository in gitweb. See linkgit:git-instaweb[1].
 
-merge.summary::
-       Whether to include summaries of merged commits in newly created
-       merge commit messages. False by default.
+instaweb.httpd::
+       The HTTP daemon command-line to start gitweb on your working
+       repository. See linkgit:git-instaweb[1].
 
-merge.tool::
-       Controls which merge resolution program is used by
-       gitlink:git-mergetool[1].  Valid values are: "kdiff3", "tkdiff",
-       "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and "opendiff".
+instaweb.local::
+       If true the web server started by linkgit:git-instaweb[1] will
+       be bound to the local IP (127.0.0.1).
 
-merge.verbosity::
-       Controls the amount of output shown by the recursive merge
-       strategy.  Level 0 outputs nothing except a final error
-       message if conflicts were detected. Level 1 outputs only
-       conflicts, 2 outputs conflicts and file changes.  Level 5 and
-       above outputs debugging information.  The default is level 2.
-       Can be overridden by 'GIT_MERGE_VERBOSITY' environment variable.
+instaweb.modulepath::
+       The module path for an apache httpd used by linkgit:git-instaweb[1].
 
-merge.<driver>.name::
-       Defines a human readable name for a custom low-level
-       merge driver.  See gitlink:gitattributes[5] for details.
+instaweb.port::
+       The port number to bind the gitweb httpd to. See
+       linkgit:git-instaweb[1].
 
-merge.<driver>.driver::
-       Defines the command that implements a custom low-level
-       merge driver.  See gitlink:gitattributes[5] for details.
+log.date::
+       Set default date-time mode for the log command. Setting log.date
+       value is similar to using git log's --date option. The value is one of
+       following alternatives: {relative,local,default,iso,rfc,short}.
+       See linkgit:git-log[1].
 
-merge.<driver>.recursive::
-       Names a low-level merge driver to be used when
-       performing an internal merge between common ancestors.
-       See gitlink:gitattributes[5] for details.
+log.showroot::
+       If true, the initial commit will be shown as a big creation event.
+       This is equivalent to a diff against an empty tree.
+       Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
+       normally hide the root commit will now show it. True by default.
+
+man.viewer::
+       Specify the programs that may be used to display help in the
+       'man' format. See linkgit:git-help[1].
+
+include::merge-config.txt[]
+
+man.<tool>.cmd::
+       Specify the command to invoke the specified man viewer. The
+       specified command is evaluated in shell with the man page
+       passed as argument. (See linkgit:git-help[1].)
+
+man.<tool>.path::
+       Override the path for the given tool that may be used to
+       display help in the 'man' format. See linkgit:git-help[1].
+
+mergetool.<tool>.path::
+       Override the path for the given tool.  This is useful in case
+       your tool is not in the PATH.
+
+mergetool.<tool>.cmd::
+       Specify the command to invoke the specified merge tool.  The
+       specified command is evaluated in shell with the following
+       variables available: 'BASE' is the name of a temporary file
+       containing the common base of the files to be merged, if available;
+       'LOCAL' is the name of a temporary file containing the contents of
+       the file on the current branch; 'REMOTE' is the name of a temporary
+       file containing the contents of the file from the branch being
+       merged; 'MERGED' contains the name of the file to which the merge
+       tool should write the results of a successful merge.
+
+mergetool.<tool>.trustExitCode::
+       For a custom merge command, specify whether the exit code of
+       the merge command can be used to determine whether the merge was
+       successful.  If this is not set to true then the merge target file
+       timestamp is checked and the merge assumed to have been successful
+       if the file has been updated, otherwise the user is prompted to
+       indicate the success of the merge.
+
+mergetool.keepBackup::
+       After performing a merge, the original file with conflict markers
+       can be saved as a file with a `.orig` extension.  If this variable
+       is set to `false` then this file is not preserved.  Defaults to
+       `true` (i.e. keep the backup files).
 
 pack.window::
-       The size of the window used by gitlink:git-pack-objects[1] when no
+       The size of the window used by linkgit:git-pack-objects[1] when no
        window size is given on the command line. Defaults to 10.
 
 pack.depth::
-       The maximum delta depth used by gitlink:git-pack-objects[1] when no
+       The maximum delta depth used by linkgit:git-pack-objects[1] when no
        maximum depth is given on the command line. Defaults to 50.
 
 pack.windowMemory::
-       The window memory size limit used by gitlink:git-pack-objects[1]
+       The window memory size limit used by linkgit:git-pack-objects[1]
        when no limit is given on the command line.  The value can be
        suffixed with "k", "m", or "g".  Defaults to 0, meaning no
        limit.
@@ -670,20 +898,22 @@ pack.compression::
 
 pack.deltaCacheSize::
        The maximum memory in bytes used for caching deltas in
-       gitlink:git-pack-objects[1].
+       linkgit:git-pack-objects[1].
        A value of 0 means no limit. Defaults to 0.
 
 pack.deltaCacheLimit::
        The maximum size of a delta, that is cached in
-       gitlink:git-pack-objects[1]. Defaults to 1000.
+       linkgit:git-pack-objects[1]. Defaults to 1000.
 
 pack.threads::
        Specifies the number of threads to spawn when searching for best
-       delta matches.  This requires that gitlink:git-pack-objects[1]
+       delta matches.  This requires that linkgit:git-pack-objects[1]
        be compiled with pthreads otherwise this option is ignored with a
        warning. This is meant to reduce packing time on multiprocessor
        machines. The required amount of memory for the delta search window
        is however multiplied by the number of threads.
+       Specifying 0 will cause git to auto-detect the number of CPU's
+       and set the number of threads accordingly.
 
 pack.indexVersion::
        Specify the default pack index version.  Valid values are 1 for
@@ -694,6 +924,12 @@ pack.indexVersion::
        whenever the corresponding pack is larger than 2 GB.  Otherwise
        the default is 1.
 
+pack.packSizeLimit::
+       The default maximum size of a pack.  This setting only affects
+       packing to a file, i.e. the git:// protocol is unaffected.  It
+       can be overridden by the `\--max-pack-size` option of
+       linkgit:git-repack[1].
+
 pull.octopus::
        The default merge strategy to use when pulling multiple branches
        at once.
@@ -702,8 +938,8 @@ pull.twohead::
        The default merge strategy to use when pulling a single branch.
 
 remote.<name>.url::
-       The URL of a remote repository.  See gitlink:git-fetch[1] or
-       gitlink:git-push[1].
+       The URL of a remote repository.  See linkgit:git-fetch[1] or
+       linkgit:git-push[1].
 
 remote.<name>.proxy::
        For remotes that require curl (http, https and ftp), the URL to
@@ -711,76 +947,103 @@ remote.<name>.proxy::
        disable proxying for that remote.
 
 remote.<name>.fetch::
-       The default set of "refspec" for gitlink:git-fetch[1]. See
-       gitlink:git-fetch[1].
+       The default set of "refspec" for linkgit:git-fetch[1]. See
+       linkgit:git-fetch[1].
 
 remote.<name>.push::
-       The default set of "refspec" for gitlink:git-push[1]. See
-       gitlink:git-push[1].
+       The default set of "refspec" for linkgit:git-push[1]. See
+       linkgit:git-push[1].
+
+remote.<name>.mirror::
+       If true, pushing to this remote will automatically behave
+       as if the `\--mirror` option was given on the command line.
 
 remote.<name>.skipDefaultUpdate::
        If true, this remote will be skipped by default when updating
-       using the remote subcommand of gitlink:git-remote[1].
+       using the update subcommand of linkgit:git-remote[1].
 
 remote.<name>.receivepack::
        The default program to execute on the remote side when pushing.  See
-       option \--exec of gitlink:git-push[1].
+       option \--receive-pack of linkgit:git-push[1].
 
 remote.<name>.uploadpack::
        The default program to execute on the remote side when fetching.  See
-       option \--exec of gitlink:git-fetch-pack[1].
+       option \--upload-pack of linkgit:git-fetch-pack[1].
 
 remote.<name>.tagopt::
-       Setting this value to --no-tags disables automatic tag following when fetching
-       from remote <name>
+       Setting this value to \--no-tags disables automatic tag following when
+       fetching from remote <name>
 
 remotes.<group>::
        The list of remotes which are fetched by "git remote update
-       <group>".  See gitlink:git-remote[1].
+       <group>".  See linkgit:git-remote[1].
 
 repack.usedeltabaseoffset::
-       Allow gitlink:git-repack[1] to create packs that uses
+       Allow linkgit:git-repack[1] to create packs that uses
        delta-base offset.  Defaults to false.
 
 show.difftree::
-       The default gitlink:git-diff-tree[1] arguments to be used
-       for gitlink:git-show[1].
+       The default linkgit:git-diff-tree[1] arguments to be used
+       for linkgit:git-show[1].
 
 showbranch.default::
-       The default set of branches for gitlink:git-show-branch[1].
-       See gitlink:git-show-branch[1].
+       The default set of branches for linkgit:git-show-branch[1].
+       See linkgit:git-show-branch[1].
+
+status.relativePaths::
+       By default, linkgit:git-status[1] shows paths relative to the
+       current directory. Setting this variable to `false` shows paths
+       relative to the repository root (this was the default for git
+       prior to v1.5.4).
 
 tar.umask::
        This variable can be used to restrict the permission bits of
        tar archive entries.  The default is 0002, which turns off the
        world write bit.  The special value "user" indicates that the
        archiving user's umask will be used instead.  See umask(2) and
-       gitlink:git-archive[1].
+       linkgit:git-archive[1].
+
+url.<base>.insteadOf::
+       Any URL that starts with this value will be rewritten to
+       start, instead, with <base>. In cases where some site serves a
+       large number of repositories, and serves them with multiple
+       access methods, and some users need to use different access
+       methods, this feature allows people to specify any of the
+       equivalent URLs and have git automatically rewrite the URL to
+       the best alternative for the particular user, even for a
+       never-before-seen repository on the site.  When more than one
+       insteadOf strings match a given URL, the longest match is used.
 
 user.email::
        Your email address to be recorded in any newly created commits.
        Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and
-       'EMAIL' environment variables.  See gitlink:git-commit-tree[1].
+       'EMAIL' environment variables.  See linkgit:git-commit-tree[1].
 
 user.name::
        Your full name to be recorded in any newly created commits.
        Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
-       environment variables.  See gitlink:git-commit-tree[1].
+       environment variables.  See linkgit:git-commit-tree[1].
 
 user.signingkey::
-       If gitlink:git-tag[1] is not selecting the key you want it to
+       If linkgit:git-tag[1] is not selecting the key you want it to
        automatically when creating a signed tag, you can override the
        default selection with this variable.  This option is passed
        unchanged to gpg's --local-user parameter, so you may specify a key
        using any method that gpg supports.
 
 whatchanged.difftree::
-       The default gitlink:git-diff-tree[1] arguments to be used
-       for gitlink:git-whatchanged[1].
+       The default linkgit:git-diff-tree[1] arguments to be used
+       for linkgit:git-whatchanged[1].
 
 imap::
        The configuration variables in the 'imap' section are described
-       in gitlink:git-imap-send[1].
+       in linkgit:git-imap-send[1].
+
+receive.fsckObjects::
+       If it is set to true, git-receive-pack will check all received
+       objects. It will abort in the case of a malformed object or a
+       broken link. The result of an abort are only dangling objects.
+       Defaults to false.
 
 receive.unpackLimit::
        If the number of objects received in a push is below this
@@ -789,7 +1052,8 @@ receive.unpackLimit::
        exceeds this limit then the received pack will be stored as
        a pack, after adding any missing delta bases.  Storing the
        pack from a push can make the push operation complete faster,
-       especially on slow filesystems.
+       especially on slow filesystems.  If not set, the value of
+       `transfer.unpackLimit` is used instead.
 
 receive.denyNonFastForwards::
        If set to true, git-receive-pack will deny a ref update which is
@@ -800,3 +1064,9 @@ receive.denyNonFastForwards::
 transfer.unpackLimit::
        When `fetch.unpackLimit` or `receive.unpackLimit` are
        not set, the value of this variable is used instead.
+       The default value is 100.
+
+web.browser::
+       Specify a web browser that may be used by some commands.
+       Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
+       may use it.