X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-repo-config.html;h=79aeedb653808c0da97cb58024ac54a4d32c52fa;hb=26a5737702ae9a7bec141d68b1c756235c55cb89;hp=3d36447fe0b166e7c66a4f2d4ea6b5702dc57e49;hpb=63636e5fc93a42d22571ac836ff9fbfb24e108d9;p=git.git diff --git a/git-repo-config.html b/git-repo-config.html index 3d36447f..79aeedb6 100644 --- a/git-repo-config.html +++ b/git-repo-config.html @@ -266,43 +266,46 @@ git-repo-config(1) Manual Page

NAME

git-repo-config - - Get and set options in .git/config. + Get and set options in .git/config

SYNOPSIS

-

git-repo-config [type] name [value [value_regex]] +

+
git-repo-config [type] name [value [value_regex]] git-repo-config [type] --replace-all name [value [value_regex]] git-repo-config [type] --get name [value_regex] git-repo-config [type] --get-all name [value_regex] git-repo-config [type] --unset name [value_regex] -git-repo-config [type] --unset-all name [value_regex]

+git-repo-config [type] --unset-all name [value_regex] +git-repo-config -l | --list

DESCRIPTION

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.

-

If you want to set/unset an option which can occur on multiple lines, you -should provide a POSIX regex for the value. If you want to handle the lines -not matching the regex, just prepend a single exclamation mark in front -(see EXAMPLES).

+

If you want to set/unset an option which can occur on multiple +lines, a POSIX regexp value_regex 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 not match the regex, just +prepend a single exclamation mark in front (see EXAMPLES).

The type specifier can be either --int or --bool, which will make git-repo-config 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.

-

This command will fail if

+

This command will fail if:

  1. -.git/config is invalid, +The .git/config file is invalid,

  2. -.git/config can not be written to, +Can not write to .git/config,

  3. @@ -336,7 +339,7 @@ you try to unset/set an option for which multiple lines match.

    Default behaviour is to replace at most one line. This replaces - all lines matching the key (and optionally the value_regex) + all lines matching the key (and optionally the value_regex).

    @@ -358,6 +361,14 @@ you try to unset/set an option for which multiple lines match.

    +--get-regexp +
    +
    +

    + Like --get-all, but interprets the name as a regular expression. +

    +
    +
    --unset
    @@ -373,6 +384,14 @@ you try to unset/set an option for which multiple lines match. Remove all matching lines from .git/config.

    +
    +-l, --list +
    +
    +

    + List all variables set in .git/config. +

    +

EXAMPLE

@@ -403,11 +422,11 @@ you try to unset/set an option for which multiple lines match.
; 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

@@ -419,7 +438,7 @@ to what URL they apply. Here is how to change the entry for kernel.org 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.

To delete the entry for renames, do

@@ -427,7 +446,7 @@ to "ssh".

% 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

@@ -442,24 +461,24 @@ you have to provide a regex matching the value of exactly one line.

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

@@ -467,13 +486,343 @@ i.e. the one without a "for …" postfix, do something like this:

% git repo-config section.key value '[!]'
+

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 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 git-update-index(1). + False by default. +

+
+
+core.preferSymlinkRefs +
+
+

+ 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. +

+
+
+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 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 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 git-format-patch(1). +

+
+
+gitcvs.enabled +
+
+

+ Whether the cvs pserver interface is enabled for this repository. + See git-cvsserver(1). +

+
+
+gitcvs.logfile +
+
+

+ Path to a log file where the cvs pserver interface well… logs + various stuff. See 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. 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 git-diff-tree(1) arguments to be used + for git-show(1). +

+
+
+showbranch.default +
+
+

+ The default set of branches for git-show-branch(1). + See 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 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 git-commit-tree(1). +

+
+
+whatchanged.difftree +
+
+

+ The default git-diff-tree(1) arguments to be used + for git-whatchanged(1). +

+
+
+imap +
+
+

+ The configuration variables in the imap section are described + in git-imap-send(1). +

+
+
+

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

@@ -481,7 +830,7 @@ i.e. the one without a "for …" postfix, do something like this: