X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-repo-config.html;h=e306688c96aa995f399d80bbf2551d555e2d5684;hb=f1d1480d8b938444a1617692e3f7df6d8e4cc911;hp=d8ffaa2b8cc94c981655487c1b8f5dc17ef07333;hpb=9c099c8cfc2a1fadd2bb15571f4d4a60bdf8f130;p=git.git diff --git a/git-repo-config.html b/git-repo-config.html index d8ffaa2b..e306688c 100644 --- a/git-repo-config.html +++ b/git-repo-config.html @@ -266,7 +266,7 @@ git-repo-config(1) Manual Page

NAME

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

@@ -278,32 +278,34 @@ git-repo-config(1) Manual Page 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,8 +338,8 @@ 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) + Default behavior is to replace at most one line. This replaces + all lines matching the key (and optionally the value_regex).

    @@ -359,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
    @@ -374,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

@@ -404,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

@@ -420,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

@@ -428,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

@@ -443,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

@@ -468,13 +486,367 @@ 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 command's behavior. They can be used by both the git plumbing +and the porcelains. The variables are divided into 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 comments 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 a more detailed description +in the appropriate manual page. You will find a 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 overridden 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.logAllRefUpdates +
+
+

+ If true, git-update-ref will append a line to + "$GIT_DIR/logs/<ref>" 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). +

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

+
+
+alias.* +
+
+

+ Command aliases for the git(1) command wrapper - e.g. + after defining "alias.last = cat-file commit HEAD", the invocation + "git last" is equivalent to "git cat-file commit HEAD". To avoid + confusion and troubles with script usage, aliases that + hide existing git commands are ignored. Arguments are split by + spaces, the usual shell quoting and escaping is supported. + quote pair and a backslash can be used to quote them. +

+
+
+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 overridden by the GIT_SSL_NO_VERIFY environment + variable. +

+
+
+http.sslCert +
+
+

+ File containing the SSL certificate when fetching or pushing + over HTTPS. Can be overridden by the GIT_SSL_CERT environment + variable. +

+
+
+http.sslKey +
+
+

+ File containing the SSL private key when fetching or pushing + over HTTPS. Can be overridden 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 overridden 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 overridden + by the GIT_SSL_CAPATH environment variable. +

+
+
+http.maxRequests +
+
+

+ How many HTTP requests to launch in parallel. Can be overridden + 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 overridden 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 overridden 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 overridden 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

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