Merge branch 'jk/tzoffset-fix' into maint
[gitweb.git] / Documentation / config.txt
index b945d67bc00d9b6fea7ae805c7d0a9e1f5962b1a..4f41840fdc0fed4ad5cf469032c7f76811dd61f0 100644 (file)
@@ -353,9 +353,9 @@ core.quotePath::
 
 core.eol::
        Sets the line ending type to use in the working directory for
-       files that have the `text` property set.  Alternatives are
-       'lf', 'crlf' and 'native', which uses the platform's native
-       line ending.  The default value is `native`.  See
+       files that have the `text` property set when core.autocrlf is false.
+       Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
+       native line ending.  The default value is `native`.  See
        linkgit:gitattributes[5] for more information on end-of-line
        conversion.
 
@@ -434,7 +434,7 @@ core.gitProxy::
        may be set multiple times and is matched in the given order;
        the first match wins.
 +
-Can be overridden by the 'GIT_PROXY_COMMAND' environment variable
+Can be overridden by the `GIT_PROXY_COMMAND` environment variable
 (which always applies universally, without the special "for"
 handling).
 +
@@ -478,9 +478,9 @@ false), while all other repositories are assumed to be bare (bare
 
 core.worktree::
        Set the path to the root of the working tree.
-       If GIT_COMMON_DIR environment variable is set, core.worktree
+       If `GIT_COMMON_DIR` environment variable is set, core.worktree
        is ignored and not used for determining the root of working tree.
-       This can be overridden by the GIT_WORK_TREE environment
+       This can be overridden by the `GIT_WORK_TREE` environment
        variable and the '--work-tree' command-line option.
        The value can be an absolute path or relative to the path to
        the .git directory, which is either specified by --git-dir
@@ -545,7 +545,7 @@ core.compression::
        -1 is the zlib default. 0 means no compression,
        and 1..9 are various speed/size tradeoffs, 9 being slowest.
        If set, this provides a default to other compression variables,
-       such as 'core.looseCompression' and 'pack.compression'.
+       such as `core.looseCompression` and `pack.compression`.
 
 core.looseCompression::
        An integer -1..9, indicating the compression level for objects that
@@ -619,9 +619,9 @@ core.excludesFile::
 core.askPass::
        Some commands (e.g. svn and http interfaces) that interactively
        ask for a password can be told to use an external program given
-       via the value of this variable. Can be overridden by the 'GIT_ASKPASS'
+       via the value of this variable. Can be overridden by the `GIT_ASKPASS`
        environment variable. If not set, fall back to the value of the
-       'SSH_ASKPASS' environment variable or, failing that, a simple password
+       `SSH_ASKPASS` environment variable or, failing that, a simple password
        prompt. The external program shall be given a suitable prompt as
        command-line argument and write the password on its STDOUT.
 
@@ -633,6 +633,23 @@ core.attributesFile::
        `$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
        set or empty, `$HOME/.config/git/attributes` is used instead.
 
+core.hooksPath::
+       By default Git will look for your hooks in the
+       '$GIT_DIR/hooks' directory. Set this to different path,
+       e.g. '/etc/git/hooks', and Git will try to find your hooks in
+       that directory, e.g. '/etc/git/hooks/pre-receive' instead of
+       in '$GIT_DIR/hooks/pre-receive'.
++
+The path can be either absolute or relative. A relative path is
+taken as relative to the directory where the hooks are run (see
+the "DESCRIPTION" section of linkgit:githooks[5]).
++
+This configuration variable is useful in cases where you'd like to
+centrally configure your Git hooks instead of configuring them on a
+per-repository basis, or as a more flexible and centralized
+alternative to having an `init.templateDir` where you've changed
+default hooks.
+
 core.editor::
        Commands such as `commit` and `tag` that lets you edit
        messages by launching an editor uses the value of this
@@ -747,7 +764,7 @@ core.notesRef::
        notes should be printed.
 +
 This setting defaults to "refs/notes/commits", and it can be overridden by
-the 'GIT_NOTES_REF' environment variable.  See linkgit:git-notes[1].
+the `GIT_NOTES_REF` environment variable.  See linkgit:git-notes[1].
 
 core.sparseCheckout::
        Enable "sparse checkout" feature. See section "Sparse checkout" in
@@ -783,7 +800,7 @@ it will be treated as a shell command.  For example, defining
 "gitk --all --not ORIG_HEAD".  Note that shell commands will be
 executed from the top-level directory of a repository, which may
 not necessarily be the current directory.
-'GIT_PREFIX' is set as returned by running 'git rev-parse --show-prefix'
+`GIT_PREFIX` is set as returned by running 'git rev-parse --show-prefix'
 from the original current directory. See linkgit:git-rev-parse[1].
 
 am.keepcr::
@@ -1124,11 +1141,16 @@ commit.template::
        Specify the pathname of a file to use as the template for
        new commit messages.
 
+commit.verbose::
+       A boolean or int to specify the level of verbose with `git commit`.
+       See linkgit:git-commit[1].
+
 credential.helper::
        Specify an external helper to be called when a username or
        password credential is needed; the helper may consult external
-       storage to avoid prompting the user for the credentials. See
-       linkgit:gitcredentials[7] for details.
+       storage to avoid prompting the user for the credentials. Note
+       that multiple helpers may be defined. See linkgit:gitcredentials[7]
+       for details.
 
 credential.useHttpPath::
        When acquiring credentials, consider the "path" component of an http
@@ -1272,6 +1294,10 @@ format.outputDirectory::
        Set a custom directory to store the resulting files instead of the
        current working directory.
 
+format.useAutoBase::
+       A boolean value which lets you enable the `--base=auto` option of
+       format-patch by default.
+
 filter.<driver>.clean::
        The command which is used to convert the content of a worktree
        file to a blob upon checkin.  See linkgit:gitattributes[5] for
@@ -1400,18 +1426,18 @@ gitcvs.usecrlfattr::
        treat it as text. If they suppress text conversion, the file
        will be set with '-kb' mode, which suppresses any newline munging
        the client might otherwise do. If the attributes do not allow
-       the file type to be determined, then 'gitcvs.allBinary' is
+       the file type to be determined, then `gitcvs.allBinary` is
        used. See linkgit:gitattributes[5].
 
 gitcvs.allBinary::
-       This is used if 'gitcvs.usecrlfattr' does not resolve
+       This is used if `gitcvs.usecrlfattr` does not resolve
        the correct '-kb' mode to use. If true, all
        unresolved files are sent to the client in
        mode '-kb'. This causes the client to treat them
        as binary files, which suppresses any newline munging it
        otherwise might do. Alternatively, if it is set to "guess",
        then the contents of the file are examined to decide if
-       it is binary, similar to 'core.autocrlf'.
+       it is binary, similar to `core.autocrlf`.
 
 gitcvs.dbName::
        Database used by git-cvsserver to cache revision information
@@ -1430,7 +1456,7 @@ gitcvs.dbDriver::
        See linkgit:git-cvsserver[1].
 
 gitcvs.dbUser, gitcvs.dbPass::
-       Database user and password. Only useful if setting 'gitcvs.dbDriver',
+       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
        linkgit:git-cvsserver[1] for details).
@@ -1442,8 +1468,8 @@ gitcvs.dbTableNamePrefix::
        linkgit:git-cvsserver[1] for details).  Any non-alphabetic
        characters will be replaced with underscores.
 
-All gitcvs variables except for 'gitcvs.usecrlfattr' and
-'gitcvs.allBinary' can also be specified as
+All gitcvs variables except for `gitcvs.usecrlfattr` and
+`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.
@@ -1476,7 +1502,7 @@ grep.patternType::
 
 grep.extendedRegexp::
        If set to true, enable '--extended-regexp' option by default. This
-       option is ignored when the 'grep.patternType' option is set to a value
+       option is ignored when the `grep.patternType` option is set to a value
        other than 'default'.
 
 grep.threads::
@@ -1561,7 +1587,7 @@ guitool.<name>.cmd::
        of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
        mandatory for every tool. The command is executed from the root of
        the working directory, and in the environment it receives the name of
-       the tool as 'GIT_GUITOOL', the name of the currently selected file as
+       the tool as `GIT_GUITOOL`, the name of the currently selected file as
        'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
        the head is detached, 'CUR_BRANCH' is empty).
 
@@ -1582,7 +1608,7 @@ guitool.<name>.confirm::
 
 guitool.<name>.argPrompt::
        Request a string argument from the user, and pass it to the tool
-       through the 'ARGS' environment variable. Since requesting an
+       through the `ARGS` environment variable. Since requesting an
        argument implies confirmation, the 'confirm' option has no effect
        if this is enabled. If the option is set to 'true', 'yes', or '1',
        the dialog uses a built-in generic prompt; otherwise the exact
@@ -1590,7 +1616,7 @@ guitool.<name>.argPrompt::
 
 guitool.<name>.revPrompt::
        Request a single valid revision from the user, and set the
-       'REVISION' environment variable. In other aspects this option
+       `REVISION` environment variable. In other aspects this option
        is similar to 'argPrompt', and can be used together with it.
 
 guitool.<name>.revUnmerged::
@@ -1646,7 +1672,7 @@ http.proxyAuthMethod::
        only takes effect if the configured proxy string contains a user name part
        (i.e. is of the form 'user@host' or 'user@host:port'). This can be
        overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
-       Both can be overridden by the 'GIT_HTTP_PROXY_AUTHMETHOD' environment
+       Both can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment
        variable.  Possible values are:
 +
 --
@@ -1668,6 +1694,12 @@ http.emptyAuth::
        a username in the URL, as libcurl normally requires a username for
        authentication.
 
+http.extraHeader::
+       Pass an additional HTTP header when communicating with a server.  If
+       more than one such entry exists, all of them are added as extra
+       headers.  To allow overriding the settings inherited from the system
+       config, an empty value will reset the extra headers to the empty list.
+
 http.cookieFile::
        The pathname of a file containing previously stored cookie lines,
        which should be used
@@ -1699,9 +1731,9 @@ http.sslVersion::
        - tlsv1.2
 
 +
-Can be overridden by the 'GIT_SSL_VERSION' environment variable.
+Can be overridden by the `GIT_SSL_VERSION` environment variable.
 To force git to use libcurl's default ssl version and ignore any
-explicit http.sslversion option, set 'GIT_SSL_VERSION' to the
+explicit http.sslversion option, set `GIT_SSL_VERSION` to the
 empty string.
 
 http.sslCipherList::
@@ -1712,41 +1744,41 @@ http.sslCipherList::
   option; see the libcurl documentation for more details on the format
   of this list.
 +
-Can be overridden by the 'GIT_SSL_CIPHER_LIST' environment variable.
+Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable.
 To force git to use libcurl's default cipher list and ignore any
-explicit http.sslCipherList option, set 'GIT_SSL_CIPHER_LIST' to the
+explicit http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the
 empty string.
 
 http.sslVerify::
        Whether to verify the SSL certificate when fetching or pushing
-       over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
+       over HTTPS. Can be overridden by the `GIT_SSL_NO_VERIFY` environment
        variable.
 
 http.sslCert::
        File containing the SSL certificate when fetching or pushing
-       over HTTPS. Can be overridden by the 'GIT_SSL_CERT' environment
+       over HTTPS. Can be overridden by the `GIT_SSL_CERT` environment
        variable.
 
 http.sslKey::
        File containing the SSL private key when fetching or pushing
-       over HTTPS. Can be overridden by the 'GIT_SSL_KEY' environment
+       over HTTPS. Can be overridden by the `GIT_SSL_KEY` environment
        variable.
 
 http.sslCertPasswordProtected::
        Enable Git's password prompt for the SSL certificate.  Otherwise
        OpenSSL will prompt the user, possibly many times, if the
        certificate or private key is encrypted.  Can be overridden by the
-       'GIT_SSL_CERT_PASSWORD_PROTECTED' environment variable.
+       `GIT_SSL_CERT_PASSWORD_PROTECTED` environment variable.
 
 http.sslCAInfo::
        File containing the certificates to verify the peer with when
        fetching or pushing over HTTPS. Can be overridden by the
-       'GIT_SSL_CAINFO' environment variable.
+       `GIT_SSL_CAINFO` environment variable.
 
 http.sslCAPath::
        Path containing files with the CA certificates to verify the peer
        with when fetching or pushing over HTTPS. Can be overridden
-       by the 'GIT_SSL_CAPATH' environment variable.
+       by the `GIT_SSL_CAPATH` environment variable.
 
 http.pinnedpubkey::
        Public key of the https service. It may either be the filename of
@@ -1766,7 +1798,7 @@ http.sslTry::
 
 http.maxRequests::
        How many HTTP requests to launch in parallel. Can be overridden
-       by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
+       by the `GIT_HTTP_MAX_REQUESTS` environment variable. Default is 5.
 
 http.minSessions::
        The number of curl sessions (counted across slots) to be kept across
@@ -1785,13 +1817,13 @@ http.postBuffer::
 http.lowSpeedLimit, http.lowSpeedTime::
        If the HTTP transfer speed is less than 'http.lowSpeedLimit'
        for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
-       Can be overridden by the 'GIT_HTTP_LOW_SPEED_LIMIT' and
-       'GIT_HTTP_LOW_SPEED_TIME' environment variables.
+       Can be overridden by the `GIT_HTTP_LOW_SPEED_LIMIT` and
+       `GIT_HTTP_LOW_SPEED_TIME` environment variables.
 
 http.noEPSV::
        A boolean which disables using of EPSV ftp command by curl.
        This can helpful with some "poor" ftp servers which don't
-       support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
+       support EPSV mode. Can be overridden by the `GIT_CURL_FTP_NO_EPSV`
        environment variable. Default is false (curl will use EPSV).
 
 http.userAgent::
@@ -1801,7 +1833,7 @@ http.userAgent::
        such as Mozilla/4.0.  This may be necessary, for instance, if
        connecting through a firewall that restricts HTTP connections to a set
        of common USER_AGENT strings (but not including those like git/1.7.1).
-       Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.
+       Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.
 
 http.<url>.*::
        Any of the http.* options above can be applied selectively to some URLs.
@@ -1901,6 +1933,14 @@ interactive.singleKey::
        setting is silently ignored if portable keystroke input
        is not available; requires the Perl module Term::ReadKey.
 
+interactive.diffFilter::
+       When an interactive command (such as `git add --patch`) shows
+       a colorized diff, git will pipe the diff through the shell
+       command defined by this configuration variable. The command may
+       mark up the diff further for human consumption, provided that it
+       retains a one-to-one correspondence with the lines in the
+       original diff. Defaults to disabled (no filtering).
+
 log.abbrevCommit::
        If true, makes linkgit:git-log[1], linkgit:git-show[1], and
        linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
@@ -1916,7 +1956,10 @@ log.decorate::
        command. If 'short' is specified, the ref name prefixes 'refs/heads/',
        'refs/tags/' and 'refs/remotes/' will not be printed. If 'full' is
        specified, the full ref name (including prefix) will be printed.
-       This is the same as the log commands '--decorate' option.
+       If 'auto' is specified, then if the output is going to a terminal,
+       the ref names are shown as if 'short' were given, otherwise no ref
+       names are shown. This is the same as the '--decorate' option
+       of the `git log`.
 
 log.follow::
        If `true`, `git log` will act as if the `--follow` option was used when
@@ -2587,7 +2630,7 @@ sendemail.identity::
        A configuration identity. When given, causes values in the
        'sendemail.<identity>' subsection to take precedence over
        values in the 'sendemail' section. The default identity is
-       the value of 'sendemail.identity'.
+       the value of `sendemail.identity`.
 
 sendemail.smtpEncryption::
        See linkgit:git-send-email[1] for description.  Note that this
@@ -2604,7 +2647,7 @@ sendemail.<identity>.*::
        Identity-specific versions of the 'sendemail.*' parameters
        found below, taking precedence over those when the this
        identity is selected, through command-line or
-       'sendemail.identity'.
+       `sendemail.identity`.
 
 sendemail.aliasesFile::
 sendemail.aliasFileType::
@@ -2634,7 +2677,7 @@ sendemail.xmailer::
        See linkgit:git-send-email[1] for description.
 
 sendemail.signedoffcc (deprecated)::
-       Deprecated alias for 'sendemail.signedoffbycc'.
+       Deprecated alias for `sendemail.signedoffbycc`.
 
 showbranch.default::
        The default set of branches for linkgit:git-show-branch[1].
@@ -2748,6 +2791,17 @@ submodule.<name>.ignore::
        "--ignore-submodules" option. The 'git submodule' commands are not
        affected by this setting.
 
+submodule.fetchJobs::
+       Specifies how many submodules are fetched/cloned at the same time.
+       A positive integer allows up to that number of submodules fetched
+       in parallel. A value of 0 will give some reasonable default.
+       If unset, it defaults to 1.
+
+tag.forceSignAnnotated::
+       A boolean to specify whether annotated tags created should be GPG signed.
+       If `--annotate` is specified on the command line, it takes
+       precedence over this option.
+
 tag.sort::
        This variable controls the sort ordering of tags when displayed by
        linkgit:git-tag[1]. Without the "--sort=<value>" option provided, the
@@ -2855,17 +2909,17 @@ url.<base>.pushInsteadOf::
 
 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 linkgit:git-commit-tree[1].
+       Can be overridden by the `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_EMAIL`, and
+       `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'
+       Can be overridden by the `GIT_AUTHOR_NAME` and `GIT_COMMITTER_NAME`
        environment variables.  See linkgit:git-commit-tree[1].
 
 user.useConfigOnly::
-       Instruct Git to avoid trying to guess defaults for 'user.email'
-       and 'user.name', and instead retrieve the values only from the
+       Instruct Git to avoid trying to guess defaults for `user.email`
+       and `user.name`, and instead retrieve the values only from the
        configuration. For example, if you have multiple email addresses
        and would like to use a different one for each repository, then
        with this configuration option set to `true` in the global config