--- /dev/null
+CONFIGURATION FILE
+------------------
+
+The git configuration file contains a number of variables that affect
+the git commands behaviour. They can be used by both the git plumbing
+and the porcelains. The variables are divided to sections, where
+in the fully qualified variable name the variable itself is the last
+dot-separated segment and the section name is everything before the last
+dot. The variable names are case-insensitive and only alphanumeric
+characters are allowed. Some variables may appear multiple times.
+
+The syntax is fairly flexible and permissive; whitespaces are mostly
+ignored. The '#' and ';' characters begin commends to the end of line,
+blank lines are ignored, lines containing strings enclosed in square
+brackets start sections and all the other lines are recognized
+as setting variables, in the form 'name = value'. If there is no equal
+sign on the line, the entire line is taken as 'name' and the variable
+is recognized as boolean "true". String values may be entirely or partially
+enclosed in double quotes; some variables may require special value format.
+
+Example
+~~~~~~~
+
+ # Core variables
+ [core]
+ ; Don't trust file modes
+ filemode = false
+
+ # Our diff algorithm
+ [diff]
+ external = "/usr/local/bin/gnu-diff -u"
+ renames = true
+
+Variables
+~~~~~~~~~
+
+Note that this list is non-comprehensive and not necessarily complete.
+For command-specific variables, you will find more detailed description
+in the appropriate manual page. You will find description of non-core
+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.
+
+core.gitProxy::
+ A "proxy command" to execute (as 'command host port') instead
+ of establishing direct connection to the remote server when
+ using the git protocol for fetching. If the variable value is
+ in the "COMMAND for DOMAIN" format, the command is applied only
+ on hostnames ending with the specified domain string. This variable
+ may be set multiple times and is matched in the given order;
+ the first match wins.
+
+ Can be overriden by the 'GIT_PROXY_COMMAND' environment variable
+ (which always applies universally, without the special "for"
+ handling).
+
+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].
+ False by default.
+
+core.onlyUseSymrefs::
+ Always use the "symref" format instead of symbolic links for HEAD
+ and other symbolic reference files. True by default.
+
+core.repositoryFormatVersion::
+ Internal variable identifying the repository format and layout
+ version.
+
+core.sharedRepository::
+ If true, the repository is made shareable between several users
+ in a group (making sure all the files and objects are group-writable).
+ See gitlink:git-init-db[1]. False by default.
+
+core.warnAmbiguousRefs::
+ If true, git will warn you if the ref name you passed it is ambiguous
+ and might match multiple refs in the .git/refs/ tree. True by default.
+
+apply.whitespace::
+ Tells `git-apply` how to handle whitespaces, in the same way
+ as the '--whitespace' option. See gitlink:git-apply[1].
+
+diff.renameLimit::
+ The number of files to consider when performing the copy/rename
+ detection; equivalent to the git diff option '-l'.
+
+format.headers::
+ Additional email headers to include in a patch to be submitted
+ by mail. See gitlink:git-format-patch[1].
+
+gitcvs.enabled::
+ Whether the cvs pserver interface is enabled for this repository.
+ See gitlink:git-cvsserver[1].
+
+gitcvs.logfile::
+ Path to a log file where the cvs pserver interface well... logs
+ various stuff. See gitlink:git-cvsserver[1].
+
+http.sslVerify::
+ Whether to verify the SSL certificate when fetching or pushing
+ over HTTPS. Can be overriden by the 'GIT_SSL_NO_VERIFY' environment
+ variable.
+
+http.sslCert::
+ File containing the SSL certificate when fetching or pushing
+ over HTTPS. Can be overriden by the 'GIT_SSL_CERT' environment
+ variable.
+
+http.sslKey::
+ File containing the SSL private key when fetching or pushing
+ over HTTPS. Can be overriden by the 'GIT_SSL_KEY' environment
+ variable.
+
+http.sslCAInfo::
+ File containing the certificates to verify the peer with when
+ fetching or pushing over HTTPS. Can be overriden by the
+ '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 overriden
+ by the 'GIT_SSL_CAPATH' environment variable.
+
+http.maxRequests::
+ How many HTTP requests to launch in parallel. Can be overriden
+ by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.
+
+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 overriden by the 'GIT_HTTP_LOW_SPEED_LIMIT' and
+ 'GIT_HTTP_LOW_SPEED_TIME' environment variables.
+
+i18n.commitEncoding::
+ Character 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. gitlink:git-mailinfo[1]. Defaults to 'utf-8'.
+
+merge.summary::
+ Whether to include summaries of merged commits in newly created
+ merge commit messages. False by default.
+
+pull.octopus::
+ The default merge strategy to use when pulling multiple branches
+ at once.
+
+pull.twohead::
+ The default merge strategy to use when pulling a single branch.
+
+show.difftree::
+ The default gitlink:git-diff-tree[1] arguments to be used
+ for gitlink:git-show[1].
+
+showbranch.default::
+ The default set of branches for gitlink:git-show-branch[1].
+ See gitlink:git-show-branch[1].
+
+user.email::
+ Your email address to be recorded in any newly created commits.
+ Can be overriden by the 'GIT_AUTHOR_EMAIL' and 'GIT_COMMITTER_EMAIL'
+ environment variables. See gitlink:git-commit-tree[1].
+
+user.name::
+ Your full name to be recorded in any newly created commits.
+ Can be overriden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
+ environment variables. See gitlink:git-commit-tree[1].
+
+whatchanged.difftree::
+ The default gitlink:git-diff-tree[1] arguments to be used
+ for gitlink:git-whatchanged[1].
+
+imap::
+ The configuration variables in the 'imap' section are described
+ in gitlink:git-imap-send[1].
<div class="literalblock">\r
<div class="content">\r
<pre><tt>; Proxy settings\r
-[proxy]\r
- command="ssh" for "ssh://kernel.org/"\r
- command="proxy-command" for kernel.org\r
- command="myprotocol-command" for "my://"\r
- command=default-proxy ; for all the rest</tt></pre>\r
+[core]\r
+ gitproxy="ssh" for "ssh://kernel.org/"\r
+ gitproxy="proxy-command" for kernel.org\r
+ gitproxy="myprotocol-command" for "my://"\r
+ gitproxy=default-proxy ; for all the rest</tt></pre>\r
</div></div>\r
<p>you can set the filemode to true with</p>\r
<div class="listingblock">\r
to "ssh".</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config proxy.command '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>\r
+<pre><tt>% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>\r
</div></div>\r
<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>\r
<p>To delete the entry for renames, do</p>\r
<div class="content">\r
<pre><tt>% git repo-config --unset diff.renames</tt></pre>\r
</div></div>\r
-<p>If you want to delete an entry for a multivar (like proxy.command above),\r
+<p>If you want to delete an entry for a multivar (like core.gitproxy above),\r
you have to provide a regex matching the value of exactly one line.</p>\r
<p>To query the value for a given key, do</p>\r
<div class="listingblock">\r
<p>or, to query a multivar:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --get proxy.command "for kernel.org$"</tt></pre>\r
+<pre><tt>% git repo-config --get core.gitproxy "for kernel.org$"</tt></pre>\r
</div></div>\r
<p>If you want to know all the values for a multivar, do:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --get-all proxy.command</tt></pre>\r
+<pre><tt>% git repo-config --get-all core.gitproxy</tt></pre>\r
</div></div>\r
-<p>If you like to live dangerous, you can replace <strong>all</strong> proxy.commands by a\r
+<p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a\r
new one with</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config --replace-all proxy.command ssh</tt></pre>\r
+<pre><tt>% git repo-config --replace-all core.gitproxy ssh</tt></pre>\r
</div></div>\r
<p>However, if you really only want to replace the line for the default proxy,\r
i.e. the one without a "for …" postfix, do something like this:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>% git repo-config proxy.command ssh '! for '</tt></pre>\r
+<pre><tt>% git repo-config core.gitproxy ssh '! for '</tt></pre>\r
</div></div>\r
<p>To actually match only values with an exclamation mark, you have to</p>\r
<div class="listingblock">\r
<pre><tt>% git repo-config section.key value '[!]'</tt></pre>\r
</div></div>\r
</div>\r
+<h2>CONFIGURATION FILE</h2>\r
+<div class="sectionbody">\r
+<p>The git configuration file contains a number of variables that affect\r
+the git commands behaviour. They can be used by both the git plumbing\r
+and the porcelains. The variables are divided to sections, where\r
+in the fully qualified variable name the variable itself is the last\r
+dot-separated segment and the section name is everything before the last\r
+dot. The variable names are case-insensitive and only alphanumeric\r
+characters are allowed. Some variables may appear multiple times.</p>\r
+<p>The syntax is fairly flexible and permissive; whitespaces are mostly\r
+ignored. The <em>#</em> and <em>;</em> characters begin commends to the end of line,\r
+blank lines are ignored, lines containing strings enclosed in square\r
+brackets start sections and all the other lines are recognized\r
+as setting variables, in the form <em>name = value</em>. If there is no equal\r
+sign on the line, the entire line is taken as <em>name</em> and the variable\r
+is recognized as boolean "true". String values may be entirely or partially\r
+enclosed in double quotes; some variables may require special value format.</p>\r
+<h3>Example</h3>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt># Core variables\r
+[core]\r
+ ; Don't trust file modes\r
+ filemode = false</tt></pre>\r
+</div></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt># Our diff algorithm\r
+[diff]\r
+ external = "/usr/local/bin/gnu-diff -u"\r
+ renames = true</tt></pre>\r
+</div></div>\r
+<h3>Variables</h3>\r
+<p>Note that this list is non-comprehensive and not necessarily complete.\r
+For command-specific variables, you will find more detailed description\r
+in the appropriate manual page. You will find description of non-core\r
+porcelain configuration variables in the respective porcelain documentation.</p>\r
+<dl>\r
+<dt>\r
+core.fileMode\r
+</dt>\r
+<dd>\r
+<p>\r
+ If false, the executable bit differences between the index and\r
+ the working copy are ignored; useful on broken filesystems like FAT.\r
+ See <a href="git-update-index.html">git-update-index(1)</a>. True by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.gitProxy\r
+</dt>\r
+<dd>\r
+<p>\r
+ A "proxy command" to execute (as <em>command host port</em>) instead\r
+ of establishing direct connection to the remote server when\r
+ using the git protocol for fetching. If the variable value is\r
+ in the "COMMAND for DOMAIN" format, the command is applied only\r
+ on hostnames ending with the specified domain string. This variable\r
+ may be set multiple times and is matched in the given order;\r
+ the first match wins.\r
+</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>Can be overriden by the 'GIT_PROXY_COMMAND' environment variable\r
+(which always applies universally, without the special "for"\r
+handling).</tt></pre>\r
+</div></div>\r
+</dd>\r
+<dt>\r
+core.ignoreStat\r
+</dt>\r
+<dd>\r
+<p>\r
+ The working copy files are assumed to stay unchanged until you\r
+ mark them otherwise manually - Git will not detect the file changes\r
+ by lstat() calls. This is useful on systems where those are very\r
+ slow, such as Microsoft Windows. See <a href="git-update-index.html">git-update-index(1)</a>.\r
+ False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.onlyUseSymrefs\r
+</dt>\r
+<dd>\r
+<p>\r
+ Always use the "symref" format instead of symbolic links for HEAD\r
+ and other symbolic reference files. True by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.repositoryFormatVersion\r
+</dt>\r
+<dd>\r
+<p>\r
+ Internal variable identifying the repository format and layout\r
+ version.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.sharedRepository\r
+</dt>\r
+<dd>\r
+<p>\r
+ If true, the repository is made shareable between several users\r
+ in a group (making sure all the files and objects are group-writable).\r
+ See <a href="git-init-db.html">git-init-db(1)</a>. False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+core.warnAmbiguousRefs\r
+</dt>\r
+<dd>\r
+<p>\r
+ If true, git will warn you if the ref name you passed it is ambiguous\r
+ and might match multiple refs in the .git/refs/ tree. True by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+apply.whitespace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Tells <tt>git-apply</tt> how to handle whitespaces, in the same way\r
+ as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+diff.renameLimit\r
+</dt>\r
+<dd>\r
+<p>\r
+ The number of files to consider when performing the copy/rename\r
+ detection; equivalent to the git diff option <em>-l</em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+format.headers\r
+</dt>\r
+<dd>\r
+<p>\r
+ Additional email headers to include in a patch to be submitted\r
+ by mail. See <a href="git-format-patch.html">git-format-patch(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+gitcvs.enabled\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether the cvs pserver interface is enabled for this repository.\r
+ See <a href="git-cvsserver.html">git-cvsserver(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+gitcvs.logfile\r
+</dt>\r
+<dd>\r
+<p>\r
+ Path to a log file where the cvs pserver interface well… logs\r
+ various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslVerify\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether to verify the SSL certificate when fetching or pushing\r
+ over HTTPS. Can be overriden by the <em>GIT_SSL_NO_VERIFY</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCert\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the SSL certificate when fetching or pushing\r
+ over HTTPS. Can be overriden by the <em>GIT_SSL_CERT</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslKey\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the SSL private key when fetching or pushing\r
+ over HTTPS. Can be overriden by the <em>GIT_SSL_KEY</em> environment\r
+ variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCAInfo\r
+</dt>\r
+<dd>\r
+<p>\r
+ File containing the certificates to verify the peer with when\r
+ fetching or pushing over HTTPS. Can be overriden by the\r
+ <em>GIT_SSL_CAINFO</em> environment variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.sslCAPath\r
+</dt>\r
+<dd>\r
+<p>\r
+ Path containing files with the CA certificates to verify the peer\r
+ with when fetching or pushing over HTTPS. Can be overriden\r
+ by the <em>GIT_SSL_CAPATH</em> environment variable.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.maxRequests\r
+</dt>\r
+<dd>\r
+<p>\r
+ How many HTTP requests to launch in parallel. Can be overriden\r
+ by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.\r
+</p>\r
+</dd>\r
+<dt>\r
+http.lowSpeedLimit, http.lowSpeedTime\r
+</dt>\r
+<dd>\r
+<p>\r
+ If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>\r
+ for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.\r
+ Can be overriden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and\r
+ <em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.\r
+</p>\r
+</dd>\r
+<dt>\r
+i18n.commitEncoding\r
+</dt>\r
+<dd>\r
+<p>\r
+ Character encoding the commit messages are stored in; git itself\r
+ does not care per se, but this information is necessary e.g. when\r
+ importing commits from emails or in the gitk graphical history\r
+ browser (and possibly at other places in the future or in other\r
+ porcelains). See e.g. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.\r
+</p>\r
+</dd>\r
+<dt>\r
+merge.summary\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether to include summaries of merged commits in newly created\r
+ merge commit messages. False by default.\r
+</p>\r
+</dd>\r
+<dt>\r
+pull.octopus\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default merge strategy to use when pulling multiple branches\r
+ at once.\r
+</p>\r
+</dd>\r
+<dt>\r
+pull.twohead\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default merge strategy to use when pulling a single branch.\r
+</p>\r
+</dd>\r
+<dt>\r
+show.difftree\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used\r
+ for <a href="git-show.html">git-show(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+showbranch.default\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.\r
+ See <a href="git-show-branch.html">git-show-branch(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+user.email\r
+</dt>\r
+<dd>\r
+<p>\r
+ Your email address to be recorded in any newly created commits.\r
+ Can be overriden by the <em>GIT_AUTHOR_EMAIL</em> and <em>GIT_COMMITTER_EMAIL</em>\r
+ environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+user.name\r
+</dt>\r
+<dd>\r
+<p>\r
+ Your full name to be recorded in any newly created commits.\r
+ Can be overriden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>\r
+ environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+whatchanged.difftree\r
+</dt>\r
+<dd>\r
+<p>\r
+ The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used\r
+ for <a href="git-whatchanged.html">git-whatchanged(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
+imap\r
+</dt>\r
+<dd>\r
+<p>\r
+ The configuration variables in the <em>imap</em> section are described\r
+ in <a href="git-imap-send.html">git-imap-send(1)</a>.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
<h2>Author</h2>\r
<div class="sectionbody">\r
<p>Written by Johannes Schindelin <Johannes.Schindelin@gmx.de></p>\r
</div>\r
<h2>Documentation</h2>\r
<div class="sectionbody">\r
-<p>Documentation by Johannes Schindelin.</p>\r
+<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.</p>\r
</div>\r
<h2>GIT</h2>\r
<div class="sectionbody">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 10-Mar-2006 00:31:33 UTC\r
+Last updated 25-Apr-2006 07:36:44 UTC\r
</div>\r
</div>\r
</body>\r
renames = true
; Proxy settings
- [proxy]
- command="ssh" for "ssh://kernel.org/"
- command="proxy-command" for kernel.org
- command="myprotocol-command" for "my://"
- command=default-proxy ; for all the rest
+ [core]
+ gitproxy="ssh" for "ssh://kernel.org/"
+ gitproxy="proxy-command" for kernel.org
+ gitproxy="myprotocol-command" for "my://"
+ gitproxy=default-proxy ; for all the rest
you can set the filemode to true with
to "ssh".
------------
-% git repo-config proxy.command '"ssh" for kernel.org' 'for kernel.org$'
+% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
------------
This makes sure that only the key/value pair for kernel.org is replaced.
% git repo-config --unset diff.renames
------------
-If you want to delete an entry for a multivar (like proxy.command above),
+If you want to delete an entry for a multivar (like core.gitproxy above),
you have to provide a regex matching the value of exactly one line.
To query the value for a given key, do
or, to query a multivar:
------------
-% git repo-config --get proxy.command "for kernel.org$"
+% git repo-config --get core.gitproxy "for kernel.org$"
------------
If you want to know all the values for a multivar, do:
------------
-% git repo-config --get-all proxy.command
+% git repo-config --get-all core.gitproxy
------------
-If you like to live dangerous, you can replace *all* proxy.commands by a
+If you like to live dangerous, you can replace *all* core.gitproxy by a
new one with
------------
-% git repo-config --replace-all proxy.command ssh
+% git repo-config --replace-all core.gitproxy ssh
------------
However, if you really only want to replace the line for the default proxy,
i.e. the one without a "for ..." postfix, do something like this:
------------
-% git repo-config proxy.command ssh '! for '
+% git repo-config core.gitproxy ssh '! for '
------------
To actually match only values with an exclamation mark, you have to
------------
+include::config.txt[]
+
+
Author
------
Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
Documentation
--------------
-Documentation by Johannes Schindelin.
+Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.
GIT
---