blob: c95eef17ef6f03176228d270cd028b6a46403458 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 7.0.2" />
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
border: 1px solid red;
*/
}
body {
margin: 1em 5% 1em 5%;
}
a { color: blue; }
a:visited { color: fuchsia; }
em {
font-style: italic;
}
strong {
font-weight: bold;
}
tt {
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1 {
border-bottom: 2px solid silver;
}
h2 {
border-bottom: 2px solid silver;
padding-top: 0.5em;
}
div.sectionbody {
font-family: serif;
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
pre {
padding: 0;
margin: 0;
}
span#author {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
font-size: 1.2em;
}
span#email {
}
span#revision {
font-family: sans-serif;
}
div#footer {
font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
div#footer-text {
float: left;
padding-bottom: 0.5em;
}
div#footer-badges {
float: right;
padding-bottom: 0.5em;
}
div#preamble,
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-right: 10%;
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.5em;
margin-bottom: 2.5em;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock > div.content {
padding-left: 2.0em;
}
div.quoteblock .attribution {
text-align: right;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 2px solid silver;
}
div.exampleblock > div.content {
border-left: 2px solid silver;
padding: 0.5em;
}
div.verseblock div.content {
white-space: pre;
}
div.imageblock div.content { padding-left: 0; }
div.imageblock img { border: 1px solid silver; }
span.image img { border-style: none; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: italic;
}
dd > *:first-child {
margin-top: 0;
}
ul, ol {
list-style-position: outside;
}
ol.olist2 {
list-style-type: lower-alpha;
}
div.tableblock > table {
border-color: #527bbd;
border-width: 3px;
}
thead {
font-family: sans-serif;
font-weight: bold;
}
tfoot {
font-weight: bold;
}
div.hlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
td.hlist1 {
vertical-align: top;
font-style: italic;
padding-right: 0.8em;
}
td.hlist2 {
vertical-align: top;
}
@media print {
div#footer-badges { display: none; }
}
include::./stylesheets/xhtml11-manpage.css[]
/* Workarounds for IE6's broken and incomplete CSS2. */
div.sidebar-content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.sidebar-title, div.image-title {
font-family: sans-serif;
font-weight: bold;
margin-top: 0.0em;
margin-bottom: 0.5em;
}
div.listingblock div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock-content {
padding-left: 2.0em;
}
div.exampleblock-content {
border-left: 2px solid silver;
padding-left: 0.5em;
}
</style>
<title>git-repo-config(1)</title>
</head>
<body>
<div id="header">
<h1>
git-repo-config(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-repo-config -
Get and set options in .git/config
</p>
</div>
</div>
<h2>SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<div class="content"><em>git-repo-config</em> [type] name [value [value_regex]]
<em>git-repo-config</em> [type] --replace-all name [value [value_regex]]
<em>git-repo-config</em> [type] --get name [value_regex]
<em>git-repo-config</em> [type] --get-all name [value_regex]
<em>git-repo-config</em> [type] --unset name [value_regex]
<em>git-repo-config</em> [type] --unset-all name [value_regex]
<em>git-repo-config</em> -l | --list</div></div>
</div>
<h2>DESCRIPTION</h2>
<div class="sectionbody">
<p>You can query/set/replace/unset options with this command. The name is
actually the section and the key separated by a dot, and the value will be
escaped.</p>
<p>If you want to set/unset an option which can occur on multiple
lines, a POSIX regexp <tt>value_regex</tt> needs to be given. Only the
existing values that match the regexp are updated or unset. If
you want to handle the lines that do <strong>not</strong> match the regex, just
prepend a single exclamation mark in front (see EXAMPLES).</p>
<p>The type specifier can be either <em>--int</em> or <em>--bool</em>, which will make
<em>git-repo-config</em> ensure that the variable(s) are of the given type and
convert the value to the canonical form (simple decimal number for int,
a "true" or "false" string for bool). If no type specifier is passed,
no checks or transformations are performed on the value.</p>
<p>This command will fail if:</p>
<ol>
<li>
<p>
The .git/config file is invalid,
</p>
</li>
<li>
<p>
Can not write to .git/config,
</p>
</li>
<li>
<p>
no section was provided,
</p>
</li>
<li>
<p>
the section or key is invalid,
</p>
</li>
<li>
<p>
you try to unset an option which does not exist, or
</p>
</li>
<li>
<p>
you try to unset/set an option for which multiple lines match.
</p>
</li>
</ol>
</div>
<h2>OPTIONS</h2>
<div class="sectionbody">
<dl>
<dt>
--replace-all
</dt>
<dd>
<p>
Default behavior is to replace at most one line. This replaces
all lines matching the key (and optionally the value_regex).
</p>
</dd>
<dt>
--get
</dt>
<dd>
<p>
Get the value for a given key (optionally filtered by a regex
matching the value).
</p>
</dd>
<dt>
--get-all
</dt>
<dd>
<p>
Like get, but does not fail if the number of values for the key
is not exactly one.
</p>
</dd>
<dt>
--get-regexp
</dt>
<dd>
<p>
Like --get-all, but interprets the name as a regular expression.
</p>
</dd>
<dt>
--unset
</dt>
<dd>
<p>
Remove the line matching the key from .git/config.
</p>
</dd>
<dt>
--unset-all
</dt>
<dd>
<p>
Remove all matching lines from .git/config.
</p>
</dd>
<dt>
-l, --list
</dt>
<dd>
<p>
List all variables set in .git/config.
</p>
</dd>
</dl>
</div>
<h2>EXAMPLE</h2>
<div class="sectionbody">
<p>Given a .git/config like this:</p>
<div class="literalblock">
<div class="content">
<pre><tt>#
# This is the config file, and
# a '#' or ';' character indicates
# a comment
#</tt></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><tt>; core variables
[core]
; Don't trust file modes
filemode = false</tt></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><tt>; Our diff algorithm
[diff]
external = "/usr/local/bin/gnu-diff -u"
renames = true</tt></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><tt>; Proxy settings
[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</tt></pre>
</div></div>
<p>you can set the filemode to true with</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config core.filemode true</tt></pre>
</div></div>
<p>The hypothetic proxy command entries actually have a postfix to discern
to what URL they apply. Here is how to change the entry for kernel.org
to "ssh".</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'</tt></pre>
</div></div>
<p>This makes sure that only the key/value pair for kernel.org is replaced.</p>
<p>To delete the entry for renames, do</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config --unset diff.renames</tt></pre>
</div></div>
<p>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.</p>
<p>To query the value for a given key, do</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config --get core.filemode</tt></pre>
</div></div>
<p>or</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config core.filemode</tt></pre>
</div></div>
<p>or, to query a multivar:</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config --get core.gitproxy "for kernel.org$"</tt></pre>
</div></div>
<p>If you want to know all the values for a multivar, do:</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config --get-all core.gitproxy</tt></pre>
</div></div>
<p>If you like to live dangerous, you can replace <strong>all</strong> core.gitproxy by a
new one with</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config --replace-all core.gitproxy ssh</tt></pre>
</div></div>
<p>However, if you really only want to replace the line for the default proxy,
i.e. the one without a "for &#8230;" postfix, do something like this:</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config core.gitproxy ssh '! for '</tt></pre>
</div></div>
<p>To actually match only values with an exclamation mark, you have to</p>
<div class="listingblock">
<div class="content">
<pre><tt>% git repo-config section.key value '[!]'</tt></pre>
</div></div>
</div>
<h2>CONFIGURATION FILE</h2>
<div class="sectionbody">
<p>The git configuration file contains a number of variables that affect
the git commands behavior. 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.</p>
<p>The syntax is fairly flexible and permissive; whitespaces are mostly
ignored. The <em>#</em> and <em>;</em> 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 <em>name = value</em>. If there is no equal
sign on the line, the entire line is taken as <em>name</em> 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.</p>
<h3>Example</h3>
<div class="literalblock">
<div class="content">
<pre><tt># Core variables
[core]
; Don't trust file modes
filemode = false</tt></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><tt># Our diff algorithm
[diff]
external = "/usr/local/bin/gnu-diff -u"
renames = true</tt></pre>
</div></div>
<h3>Variables</h3>
<p>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.</p>
<dl>
<dt>
core.fileMode
</dt>
<dd>
<p>
If false, the executable bit differences between the index and
the working copy are ignored; useful on broken filesystems like FAT.
See <a href="git-update-index.html">git-update-index(1)</a>. True by default.
</p>
</dd>
<dt>
core.gitProxy
</dt>
<dd>
<p>
A "proxy command" to execute (as <em>command host port</em>) 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.
</p>
<div class="literalblock">
<div class="content">
<pre><tt>Can be overridden by the 'GIT_PROXY_COMMAND' environment variable
(which always applies universally, without the special "for"
handling).</tt></pre>
</div></div>
</dd>
<dt>
core.ignoreStat
</dt>
<dd>
<p>
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 <a href="git-update-index.html">git-update-index(1)</a>.
False by default.
</p>
</dd>
<dt>
core.preferSymlinkRefs
</dt>
<dd>
<p>
Instead of the default "symref" format for HEAD
and other symbolic reference files, use symbolic links.
This is sometimes needed to work with old scripts that
expect HEAD to be a symbolic link.
</p>
</dd>
<dt>
core.logAllRefUpdates
</dt>
<dd>
<p>
If true, <tt>git-update-ref</tt> will append a line to
"$GIT_DIR/logs/&lt;ref&gt;" listing the new SHA1 and the date/time
of the update. If the file does not exist it will be
created automatically. This information can be used to
determine what commit was the tip of a branch "2 days ago".
This value is false by default (no logging).
</p>
</dd>
<dt>
core.repositoryFormatVersion
</dt>
<dd>
<p>
Internal variable identifying the repository format and layout
version.
</p>
</dd>
<dt>
core.sharedRepository
</dt>
<dd>
<p>
If true, the repository is made shareable between several users
in a group (making sure all the files and objects are group-writable).
See <a href="git-init-db.html">git-init-db(1)</a>. False by default.
</p>
</dd>
<dt>
core.warnAmbiguousRefs
</dt>
<dd>
<p>
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.
</p>
</dd>
<dt>
apply.whitespace
</dt>
<dd>
<p>
Tells <tt>git-apply</tt> how to handle whitespaces, in the same way
as the <em>--whitespace</em> option. See <a href="git-apply.html">git-apply(1)</a>.
</p>
</dd>
<dt>
diff.renameLimit
</dt>
<dd>
<p>
The number of files to consider when performing the copy/rename
detection; equivalent to the git diff option <em>-l</em>.
</p>
</dd>
<dt>
format.headers
</dt>
<dd>
<p>
Additional email headers to include in a patch to be submitted
by mail. See <a href="git-format-patch.html">git-format-patch(1)</a>.
</p>
</dd>
<dt>
gitcvs.enabled
</dt>
<dd>
<p>
Whether the cvs pserver interface is enabled for this repository.
See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
</p>
</dd>
<dt>
gitcvs.logfile
</dt>
<dd>
<p>
Path to a log file where the cvs pserver interface well&#8230; logs
various stuff. See <a href="git-cvsserver.html">git-cvsserver(1)</a>.
</p>
</dd>
<dt>
http.sslVerify
</dt>
<dd>
<p>
Whether to verify the SSL certificate when fetching or pushing
over HTTPS. Can be overriden by the <em>GIT_SSL_NO_VERIFY</em> environment
variable.
</p>
</dd>
<dt>
http.sslCert
</dt>
<dd>
<p>
File containing the SSL certificate when fetching or pushing
over HTTPS. Can be overriden by the <em>GIT_SSL_CERT</em> environment
variable.
</p>
</dd>
<dt>
http.sslKey
</dt>
<dd>
<p>
File containing the SSL private key when fetching or pushing
over HTTPS. Can be overridden by the <em>GIT_SSL_KEY</em> environment
variable.
</p>
</dd>
<dt>
http.sslCAInfo
</dt>
<dd>
<p>
File containing the certificates to verify the peer with when
fetching or pushing over HTTPS. Can be overridden by the
<em>GIT_SSL_CAINFO</em> environment variable.
</p>
</dd>
<dt>
http.sslCAPath
</dt>
<dd>
<p>
Path containing files with the CA certificates to verify the peer
with when fetching or pushing over HTTPS. Can be overriden
by the <em>GIT_SSL_CAPATH</em> environment variable.
</p>
</dd>
<dt>
http.maxRequests
</dt>
<dd>
<p>
How many HTTP requests to launch in parallel. Can be overridden
by the <em>GIT_HTTP_MAX_REQUESTS</em> environment variable. Default is 5.
</p>
</dd>
<dt>
http.lowSpeedLimit, http.lowSpeedTime
</dt>
<dd>
<p>
If the HTTP transfer speed is less than <em>http.lowSpeedLimit</em>
for longer than <em>http.lowSpeedTime</em> seconds, the transfer is aborted.
Can be overridden by the <em>GIT_HTTP_LOW_SPEED_LIMIT</em> and
<em>GIT_HTTP_LOW_SPEED_TIME</em> environment variables.
</p>
</dd>
<dt>
i18n.commitEncoding
</dt>
<dd>
<p>
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. <a href="git-mailinfo.html">git-mailinfo(1)</a>. Defaults to <em>utf-8</em>.
</p>
</dd>
<dt>
merge.summary
</dt>
<dd>
<p>
Whether to include summaries of merged commits in newly created
merge commit messages. False by default.
</p>
</dd>
<dt>
pull.octopus
</dt>
<dd>
<p>
The default merge strategy to use when pulling multiple branches
at once.
</p>
</dd>
<dt>
pull.twohead
</dt>
<dd>
<p>
The default merge strategy to use when pulling a single branch.
</p>
</dd>
<dt>
show.difftree
</dt>
<dd>
<p>
The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
for <a href="git-show.html">git-show(1)</a>.
</p>
</dd>
<dt>
showbranch.default
</dt>
<dd>
<p>
The default set of branches for <a href="git-show-branch.html">git-show-branch(1)</a>.
See <a href="git-show-branch.html">git-show-branch(1)</a>.
</p>
</dd>
<dt>
user.email
</dt>
<dd>
<p>
Your email address to be recorded in any newly created commits.
Can be overridden by the <em>GIT_AUTHOR_EMAIL</em> and <em>GIT_COMMITTER_EMAIL</em>
environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
</p>
</dd>
<dt>
user.name
</dt>
<dd>
<p>
Your full name to be recorded in any newly created commits.
Can be overridden by the <em>GIT_AUTHOR_NAME</em> and <em>GIT_COMMITTER_NAME</em>
environment variables. See <a href="git-commit-tree.html">git-commit-tree(1)</a>.
</p>
</dd>
<dt>
whatchanged.difftree
</dt>
<dd>
<p>
The default <a href="git-diff-tree.html">git-diff-tree(1)</a> arguments to be used
for <a href="git-whatchanged.html">git-whatchanged(1)</a>.
</p>
</dd>
<dt>
imap
</dt>
<dd>
<p>
The configuration variables in the <em>imap</em> section are described
in <a href="git-imap-send.html">git-imap-send(1)</a>.
</p>
</dd>
</dl>
</div>
<h2>Author</h2>
<div class="sectionbody">
<p>Written by Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;</p>
</div>
<h2>Documentation</h2>
<div class="sectionbody">
<p>Documentation by Johannes Schindelin, Petr Baudis and the git-list &lt;git@vger.kernel.org&gt;.</p>
</div>
<h2>GIT</h2>
<div class="sectionbody">
<p>Part of the <a href="git.html">git(7)</a> suite</p>
</div>
<div id="footer">
<div id="footer-text">
Last updated 04-Jun-2006 07:24:29 UTC
</div>
</div>
</body>
</html>