Set the default matching behavior. Using a value of basic, extended, fixed, or perl will enable the --basic-regexp
, --extended-regexp
, --fixed-strings
, or
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].0 option accordingly, while the value default will use the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].1 option to choose between basic and extended.grep.extendedRegexp
If set to true, enable --extended-regexp
option by default. This option is ignored when the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].3 option is set to a value other than default.grep.threads
Number of grep worker threads to use. If unset [or set to 0], Git will use as many threads as the number of logical cores available.
grep.fullNameIf set to true, enable
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].4 option by default.grep.fallbackToNoIndex
If set to true, fall back to git grep --no-index if git grep is executed outside of a git repository. Defaults to false.
gpg.programUse this custom program instead of "
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].5" found on
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].6 when making or verifying a PGP signature. The program must support the same command-line interface as GPG, namely, to verify a detached signature, "
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].7" is run, and the program is expected to signal a good signature by exiting with code 0, and to generate an ASCII-armored detached signature, the standard input of "
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].8" is fed with the contents to be signed, and the program is expected to send the result to its standard output.gpg.format
Specifies which key format to use when signing with
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].9. Default is "openpgp". Other possible values are "x509", "ssh".gpg..program
Use this to customize the program used for the signing format you chose. [see
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...0 and
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...1]
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...0 can still be used as a legacy synonym for
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...3. The default value for
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...4 is "gpgsm" and
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...5 is "ssh-keygen".gpg.minTrustLevel
Specifies a minimum trust level for signature verification. If this option is unset, then signature verification for merge operations require a key with at least
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...6 trust. Other operations that perform signature verification require a key with at least
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...7 trust. Setting this option overrides the required trust-level for all operations. Supported values, in increasing order of significance:
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
7p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
9p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
6pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...
1pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...
2
This command that will be run when user.signingkey is not set and a ssh signature is requested. On successful exit a valid ssh public key prefixed with
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...3 is expected in the first line of its output. This allows for a script doing a dynamic lookup of the correct public key when it is impractical to statically configure
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...4. For example when keys or SSH Certificates are rotated frequently or selection of the right key depends on external factors unknown to git.gpg.ssh.allowedSignersFile
A file containing ssh public keys which you are willing to trust. The file consists of one or more lines of principals followed by an ssh public key. e.g.:
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...5 See ssh-keygen[1] "ALLOWED SIGNERS" for details. The principal is only used to identify the key and is available when verifying a signature.
SSH has no concept of trust levels like gpg does. To be able to differentiate between valid signatures and trusted signatures the trust level of a signature verification is set to
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...1 when the public key is present in the allowedSignersFile. Otherwise the trust level is
p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...7 and git verify-commit/tag will fail.
This file can be set to a location outside of the repository and every developer maintains their own trust store. A central repository server could generate this file automatically from ssh keys with push access to verify the code against. In a corporate setting this file is probably generated at a global location from automation that already handles developer ssh keys.
A repository that only allows signed commits can store the file in the repository itself using a path relative to the top-level of the working tree. This way only committers with an already valid key can add or change keys in the keyring.
Since OpensSSH 8.8 this file allows specifying a key lifetime using valid-after & valid-before options. Git will mark signatures as valid if the signing key was valid at the time of the signature’s creation. This allows users to change a signing key without invalidating all previously made signatures.
Using a SSH CA key with the cert-authority option [see ssh-keygen[1] "CERTIFICATES"] is also valid.
Either a SSH KRL or a list of revoked public keys [without the principal prefix]. See ssh-keygen[1] for details. If a public key is found in this file then it will always be treated as having trust level "never" and signatures will show as invalid.
gui.commitMsgWidthDefines how wide the commit message window is in the git-gui[1]. "75" is the default.
gui.diffContextSpecifies how many context lines should be used in calls to diff made by the git-gui[1]. The default is "5".
gui.displayUntrackedDetermines if git-gui[1] shows untracked files in the file list. The default is "true".
gui.encodingSpecifies the default character encoding to use for displaying of file contents in git-gui[1] and gitk[1]. It can be overridden by setting the encoding attribute for relevant files [see gitattributes[5]]. If this option is not set, the tools default to the locale encoding.
gui.matchTrackingBranchDetermines if new branches created with git-gui[1] should default to tracking remote branches with matching names or not. Default: "false".
gui.newBranchTemplateIs used as suggested name when creating new branches using the git-gui[1].
gui.pruneDuringFetch"true" if git-gui[1] should prune remote-tracking branches when performing a fetch. The default value is "false".
Determines if git-gui[1] should trust the file modification timestamp or not. By default the timestamps are not trusted.
gui.spellingDictionarySpecifies the dictionary used for spell checking commit messages in the git-gui[1]. When set to "none" spell checking is turned off.
gui.fastCopyBlameIf true, git gui blame uses
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...8 instead of
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...9 for original location detection. It makes blame significantly faster on huge repositories at the expense of less thorough copy detection.gui.copyBlameThreshold
Specifies the threshold to use in git gui blame original location detection, measured in alphanumeric characters. See the git-blame[1] manual for more information on copy detection.
gui.blamehistoryctxSpecifies the radius of history context in days to show in gitk[1] for the selected commit, when the
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads0 menu item is invoked from git gui blame. If this variable is set to zero, the whole history is shown.guitool..cmd
Specifies the shell command line to execute when the corresponding item of the git-gui[1]
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads1 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 config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads2, 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].guitool..needsFile
Run the tool only if a diff is selected in the GUI. It guarantees that FILENAME is not empty.
guitool..noConsoleRun the command silently, without creating a window to display its output.
guitool..noRescanDon’t rescan the working directory for changes after the tool finishes execution.
guitool..confirmShow a confirmation dialog before actually running the tool.
Request a string argument from the user, and pass it to the tool through the
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads3 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 value of the variable is used.guitool..revPrompt
Request a single valid revision from the user, and set the
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads4 environment variable. In other aspects this option is similar to argPrompt, and can be used together with it.guitool..revUnmerged
Show only unmerged branches in the revPrompt subdialog. This is useful for tools similar to merge or rebase, but not for things like checkout or reset.
guitool..titleSpecifies the title to use for the prompt dialog. The default is the tool name.
guitool..promptSpecifies the general prompt string to display at the top of the dialog, before subsections for argPrompt and revPrompt. The default value includes the actual command.
help.browserSpecify the browser that will be used to display help in the web format. See git-help[1].
help.formatOverride the default help format used by git-help[1]. Values man, info, web and html are supported. man is the default. web and html are the same.
help.autoCorrectIf git detects typos and can identify exactly one valid command similar to the error, git will try to suggest the correct command or even run the suggestion automatically. Possible config values are:
0 [default]: show the suggested command.
positive number: run the suggested command after specified deciseconds [0.1 sec].
"immediate": run the suggested command immediately.
"prompt": show the suggestion and prompt for confirmation to run the command.
"never": don’t run or show any suggested command.
Specify the path where the HTML documentation resides. File system paths and URLs are supported. HTML pages will be prefixed with this path when help is displayed in the web format. This defaults to the documentation path of your Git installation.
http.proxyOverride the HTTP proxy, normally configured using the http_proxy, https_proxy, and all_proxy environment variables [see
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads5]. In addition to the syntax understood by curl, it is possible to specify a proxy string with a user name but no password, in which case git will attempt to acquire one in the same way it does for other credentials. See gitcredentials[7] for more information. The syntax thus is [protocol://][user[:password]@]proxyhost[:port]. This can be overridden on a per-remote basis; see remote..proxyhttp.proxyAuthMethod
Set the method with which to authenticate against the HTTP proxy. This 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
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads6. Both can be overridden by the
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads7 environment variable. Possible values are:
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
8 - Automatically pick a suitable authentication method. It is assumed that the proxy answers an unauthenticated request with a 407 status code and one or more Proxy-authenticate headers with supported authentication methods. This is the default.git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
9 - HTTP Basic authentication-n
0 - HTTP Digest authentication; this prevents the password from being transmitted to the proxy in clear text-n
1 - GSS-Negotiate authentication [compare the --negotiate option ofgit config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
5]-n
3 - NTLM authentication [compare the --ntlm option ofgit config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
5]
The pathname of a file that stores a client certificate to use to authenticate with an HTTPS proxy. Can be overridden by the -n
5 environment variable.
The pathname of a file that stores a private key to use to authenticate with an HTTPS proxy. Can be overridden by the -n
6 environment variable.
Enable Git’s password prompt for the proxy SSL certificate. Otherwise OpenSSL will prompt the user, possibly many times, if the certificate or private key is encrypted. Can be overridden by the -n
7 environment variable.
Pathname to the file containing the certificate bundle that should be used to verify the proxy with when using an HTTPS proxy. Can be overridden by the -n
8 environment variable.
Attempt authentication without seeking a username or password. This can be used to attempt GSS-Negotiate authentication without specifying a username in the URL, as libcurl normally requires a username for authentication.
http.delegationControl GSSAPI credential delegation. The delegation is disabled by default in libcurl since version 7.21.7. Set parameter to tell the server what it is allowed to delegate when it comes to user credentials. Used with GSS/kerberos. Possible values are:
-n
9 - Don’t allow any delegation.--column
0 - Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos service ticket, which is a matter of realm policy.--column
1 - Unconditionally allow the server to delegate.
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.cookieFileThe pathname of a file containing previously stored cookie lines, which should be used in the Git http session, if they match the server. The file format of the file to read cookies from should be plain HTTP headers or the Netscape/Mozilla cookie file format [see
git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads5]. NOTE that the file specified with http.cookieFile is used only as input unless http.saveCookies is set.http.saveCookies
If set, store cookies received during requests to the file specified by http.cookieFile. Has no effect if http.cookieFile is unset.
http.versionUse the specified HTTP protocol version when communicating with a server. If you want to force the default. The available and default version depend on libcurl. Currently the possible values of this option are:
http.curloptResolveHostname resolution information that will be used first by libcurl when sending HTTP requests. This information should be in one of the following formats:
[+]HOST:PORT:ADDRESS[,ADDRESS]
-HOST:PORT
The first format redirects all requests to the given --column
3 to the provided --column
4[s]. The second format clears all previous config values for that --column
3 combination. To allow easy overriding of all the settings inherited from the system config, an empty value will reset all resolution information to the empty list.
The SSL version to use when negotiating an SSL connection, if you want to force the default. The available and default version depend on whether libcurl was built against NSS or OpenSSL and the particular configuration of the crypto library in use. Internally this sets the CURLOPT_SSL_VERSION option; see the libcurl documentation for more details on the format of this option and for the ssl version supported. Currently the possible values of this option are:
sslv2
sslv3
tlsv1
tlsv1.0
tlsv1.1
tlsv1.2
tlsv1.3
Can be overridden by the --column
6 environment variable. To force git to use libcurl’s default ssl version and ignore any explicit http.sslversion option, set --column
6 to the empty string.
A list of SSL ciphers to use when negotiating an SSL connection. The available ciphers depend on whether libcurl was built against NSS or OpenSSL and the particular configuration of the crypto library in use. Internally this sets the CURLOPT_SSL_CIPHER_LIST option; see the libcurl documentation for more details on the format of this list.
Can be overridden by the --column
8 environment variable. To force git to use libcurl’s default cipher list and ignore any explicit http.sslCipherList option, set --column
8 to the empty string.
Whether to verify the SSL certificate when fetching or pushing over HTTPS. Defaults to true. Can be overridden by the --basic-regexp
0 environment variable.
File containing the SSL certificate when fetching or pushing over HTTPS. Can be overridden by the --basic-regexp
1 environment variable.
File containing the SSL private key when fetching or pushing over HTTPS. Can be overridden by the --basic-regexp
2 environment variable.
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 --basic-regexp
3 environment variable.
File containing the certificates to verify the peer with when fetching or pushing over HTTPS. Can be overridden by the --basic-regexp
4 environment variable.
Path containing files with the CA certificates to verify the peer with when fetching or pushing over HTTPS. Can be overridden by the --basic-regexp
5 environment variable.
Name of the SSL backend to use [e.g. "openssl" or "schannel"]. This option is ignored if cURL lacks support for choosing the SSL backend at runtime.
http.schannelCheckRevokeUsed to enforce or disable certificate revocation checks in cURL when http.sslBackend is set to "schannel". Defaults to --basic-regexp
6 if unset. Only necessary to disable this if Git consistently errors and the message is about checking the revocation status of a certificate. This option is ignored if cURL lacks support for setting the relevant SSL option at runtime.
As of cURL v7.60.0, the Secure Channel backend can use the certificate bundle provided via --basic-regexp
7, but that would override the Windows Certificate Store. Since this is not desirable by default, Git will tell cURL not to use that bundle by default when the --basic-regexp
8 backend was configured via --basic-regexp
9, unless --extended-regexp
0 overrides this behavior.
Public key of the https service. It may either be the filename of a PEM or DER encoded public key file or a string starting with sha256// followed by the base64 encoded sha256 hash of the public key. See also libcurl CURLOPT_PINNEDPUBLICKEY. git will exit with an error if this option is set but not supported by cURL.
http.sslTryAttempt to use AUTH SSL/TLS and encrypted data transfers when connecting via regular FTP protocol. This might be needed if the FTP server requires it for security reasons or you wish to connect securely whenever remote FTP server supports it. Default is false since it might trigger certificate verification errors on misconfigured servers.
http.maxRequestsHow many HTTP requests to launch in parallel. Can be overridden by the --extended-regexp
1 environment variable. Default is 5.
The number of curl sessions [counted across slots] to be kept across requests. They will not be ended with curl_easy_cleanup[] until http_cleanup[] is invoked. If USE_CURL_MULTI is not defined, this value will be capped at 1. Defaults to 1.
http.postBufferMaximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote system. For requests larger than this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used to avoid creating a massive pack file locally. Default is 1 MiB, which is sufficient for most requests.
Note that raising this limit is only effective for disabling chunked transfer encoding and therefore should be used only where the remote server or a proxy only supports HTTP/1.0 or is noncompliant with the HTTP standard. Raising this is not, in general, an effective solution for most push problems, but can increase memory consumption significantly since the entire buffer is allocated even for small pushes.
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 --extended-regexp
2 and --extended-regexp
3 environment variables.
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 --extended-regexp
4 environment variable. Default is false [curl will use EPSV].
The HTTP USER_AGENT string presented to an HTTP server. The default value represents the version of the client Git such as git/1.7.1. This option allows you to override this value to a more common value 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 --extended-regexp
5 environment variable.
Whether git should follow HTTP redirects. If set to --basic-regexp
6, git will transparently follow any redirect issued by a server it encounters. If set to --extended-regexp
7, git will treat all redirects as errors. If set to --extended-regexp
8, git will follow redirects only for the initial request to a remote, but not for subsequent follow-up HTTP requests. Since git uses the redirected URL as the base for the follow-up requests, this is generally sufficient. The default is --extended-regexp
8.
Any of the http.* options above can be applied selectively to some URLs. For a config key to match a URL, each element of the config key is compared to that of the URL, in the following order:
Scheme [e.g.,
--fixed-strings
0 in--fixed-strings
1]. This field must match exactly between the config key and the URL.Host/domain name [e.g.,
--fixed-strings
2 in--fixed-strings
1]. This field must match between the config key and the URL. It is possible to specify a--fixed-strings
4 as part of the host name to match all subdomains at this level.--fixed-strings
5 for example would match--fixed-strings
6, but not--fixed-strings
7.Port number [e.g.,
--fixed-strings
8 in--fixed-strings
9]. This field must match exactly between the config key and the URL. Omitted port numbers are automatically converted to the correct default for the scheme before matching.Path [e.g.,
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
00 inExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
01]. The path field of the config key must match the path field of the URL either exactly or as a prefix of slash-delimited path elements. This means a config key with pathExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
02 matches URL pathExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
03. A prefix can only match on a slash [Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
04] boundary. Longer matches take precedence [so a config key with pathExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
03 is a better match to URL pathExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
03 than a config key with just pathExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
02].User name [e.g.,
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
08 inExample: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].
09]. If the config key has a user name it must match the user name in the URL exactly. If the config key does not have a user name, that config key will match a URL with any user name [including none], but at a lower precedence than a config key with a user name.
The list above is ordered by decreasing precedence; a URL that matches a config key’s path is preferred to one that matches its user name. For example, if the URL is
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].10 a config key match of
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].11 will be preferred over a config key match of
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].12.
All URLs are normalized before attempting any matching [the password part, if embedded in the URL, is always ignored for matching purposes] so that equivalent URLs that are simply spelled differently will match properly. Environment variable settings always override any matches. The URLs that are matched against are those given directly to Git commands. This means any URLs visited as a result of a redirection do not participate in matching.
i18n.commitEncodingCharacter encoding the commit messages are stored in; Git itself 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. git-mailinfo[1]. Defaults to utf-8.
i18n.logOutputEncodingCharacter encoding the commit messages are converted to when running git log and friends.
imap.folderThe folder to drop the mails into, which is typically the Drafts folder. For example: "INBOX.Drafts", "INBOX/Drafts" or "[Gmail]/Drafts". Required.
imap.tunnelCommand used to setup a tunnel to the IMAP server through which commands will be piped instead of using a direct network connection to the server. Required when imap.host is not set.
imap.hostA URL identifying the server. Use an
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].13 prefix for non-secure connections and an
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].14 prefix for secure connections. Ignored when imap.tunnel is set, but required otherwise.imap.user
The username to use when logging in to the server.
imap.passThe password to use when logging in to the server.
imap.portAn integer port number to connect to on the server. Defaults to 143 for imap:// hosts and 993 for imaps:// hosts. Ignored when imap.tunnel is set.
imap.sslverifyA boolean to enable/disable verification of the server certificate used by the SSL/TLS connection. Default is --basic-regexp
6. Ignored when imap.tunnel is set.
A boolean to enable/disable the use of html encoding when sending a patch. An html encoded patch will be bracketed with
and have a content type of text/html. Ironically, enabling this
option causes Thunderbird to send the patch as a plain/text,
format=fixed email. Default is false
.
imap.authMethodSpecify authenticate method for authentication with IMAP server. If Git was built with the NO_CURL option, or if your curl version is older than 7.34.0, or if you’re running git-imap-send with the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].16 option, the only supported method is CRAM-MD5. If this is not set then git imap-send uses the basic IMAP plaintext LOGIN command.include.pathincludeIf..path
Special variables to include other configuration files. See the "CONFIGURATION FILE" section in the main git-config[1] documentation, specifically the "Includes" and "Conditional Includes" subsections.
index.recordEndOfIndexEntriesSpecifies whether the index file should include an "End Of Index Entry" section. This reduces index load time on multiprocessor machines but produces a message "ignoring EOIE extension" when reading the index using Git versions before 2.20. Defaults to true if index.threads has been explicitly enabled, false otherwise.
index.recordOffsetTableSpecifies whether the index file should include an "Index Entry Offset Table" section. This reduces index load time on multiprocessor machines but produces a message "ignoring IEOT extension" when reading the index using Git versions before 2.20. Defaults to true if index.threads has been explicitly enabled, false otherwise.
index.sparseWhen enabled, write the index using sparse-directory entries. This has no effect unless
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].17 and
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].18 are both enabled. Defaults to false.index.threads
Specifies the number of threads to spawn when loading the index. This is meant to reduce index load time on multiprocessor machines. Specifying 0 or true will cause Git to auto-detect the number of CPU’s and set the number of threads accordingly. Specifying 1 or false will disable multithreading. Defaults to true.
index.versionSpecify the version with which new index files should be initialized. This does not affect existing repositories. If
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].19 is enabled, then the default is 4.init.templateDir
Specify the directory from which templates will be copied. [See the "TEMPLATE DIRECTORY" section of git-init[1].]
init.defaultBranchAllows overriding the default branch name e.g. when initializing a new repository.
instaweb.browserSpecify the program that will be used to browse your working repository in gitweb. See git-instaweb[1].
instaweb.httpdThe HTTP daemon command-line to start gitweb on your working repository. See git-instaweb[1].
instaweb.localIf true the web server started by git-instaweb[1] will be bound to the local IP [127.0.0.1].
instaweb.modulePathThe default module path for git-instaweb[1] to use instead of /usr/lib/apache2/modules. Only used if httpd is Apache.
instaweb.portThe port number to bind the gitweb httpd to. See git-instaweb[1].
interactive.singleKeyIn interactive commands, allow the user to provide one-letter input with a single key [i.e., without hitting enter]. Currently this is used by the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].20 mode of git-add[1], git-checkout[1], git-restore[1], git-commit[1], git-reset[1], and git-stash[1]. Note that this 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
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].21] 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 git-log[1], git-show[1], and git-whatchanged[1] assume
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].22. You may override this option with
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].23.
Set the default date-time mode for the log command. Setting a value for log.date is similar to using git log's
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].24 option. See git-log[1] for details.
If the format is set to "auto:foo" and the pager is in use, format "foo" will be the used for the date format. Otherwise "default" will be used.
log.decoratePrint out the ref names of any commits that are shown by the log 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. 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
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].25 option of the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].26.log.initialDecorationSet
By default,
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].26 only shows decorations for certain known ref namespaces. If all is specified, then show all refs as decorations.log.excludeDecoration
Exclude the specified patterns from the log decorations. This is similar to the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].28 command-line option, but the config option can be overridden by the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].29 option.log.diffMerges
Set diff format to be used when
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].30 is specified, see
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].31 in git-log[1] for details. Defaults to
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].32.log.follow
If --basic-regexp
6,
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].26 will act as if the
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].35 option was used when a singleis given. This has the same limitations as
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].35, i.e. it cannot be used to follow multiple files and does not work well on non-linear history.log.graphColors
A list of colors, separated by commas, that can be used to draw history lines in
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].37.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 git-log[1] or git-whatchanged[1], which normally hide the root commit will now show it. True by default.
log.showSignatureIf true, makes git-log[1], git-show[1], and git-whatchanged[1] assume
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].38.log.mailmap
If true, makes git-log[1], git-show[1], and git-whatchanged[1] assume
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].39, otherwise assume
Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b [a and c are cleared].40. True by default.lsrefs.unborn
May be "advertise" [the default], "allow", or "ignore". If "advertise", the server will respond to the client sending "unborn" [as described in gitprotocol-v2[5]] and will advertise support for this feature during the protocol v2 capability advertisement. "allow" is the same as "advertise" except that the server will not advertise support for this feature; this is useful for load-balanced servers that cannot be updated atomically [for example], since the administrator could configure "allow", then after a delay, configure "advertise".
mailinfo.scissorsIf true, makes git-mailinfo[1] [and therefore git-am[1]] act by default as if the --scissors option was provided on the command-line. When active, this features removes everything from the message body before a scissors line [i.e. consisting mainly of ">8", "8