Documentation / git-repo-config.txton commit Documentation: {caret} fixes (git-rev-list.txt) (afb4ff2)
   1git-repo-config(1)
   2==================
   3
   4NAME
   5----
   6git-repo-config - Get and set options in .git/config
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git-repo-config' [type] name [value [value_regex]]
  13'git-repo-config' [type] --replace-all name [value [value_regex]]
  14'git-repo-config' [type] --get name [value_regex]
  15'git-repo-config' [type] --get-all name [value_regex]
  16'git-repo-config' [type] --unset name [value_regex]
  17'git-repo-config' [type] --unset-all name [value_regex]
  18
  19DESCRIPTION
  20-----------
  21You can query/set/replace/unset options with this command. The name is
  22actually the section and the key separated by a dot, and the value will be
  23escaped.
  24
  25If you want to set/unset an option which can occur on multiple
  26lines, a POSIX regexp `value_regex` needs to be given.  Only the
  27existing values that match the regexp are updated or unset.  If
  28you want to handle the lines that do *not* match the regex, just
  29prepend a single exclamation mark in front (see EXAMPLES).
  30
  31The type specifier can be either '--int' or '--bool', which will make
  32'git-repo-config' ensure that the variable(s) are of the given type and
  33convert the value to the canonical form (simple decimal number for int,
  34a "true" or "false" string for bool). If no type specifier is passed,
  35no checks or transformations are performed on the value.
  36
  37This command will fail if
  38
  39. .git/config is invalid,
  40. .git/config can not be written to,
  41. no section was provided,
  42. the section or key is invalid,
  43. you try to unset an option which does not exist, or
  44. you try to unset/set an option for which multiple lines match.
  45
  46
  47OPTIONS
  48-------
  49
  50--replace-all::
  51        Default behaviour is to replace at most one line. This replaces
  52        all lines matching the key (and optionally the value_regex)
  53
  54--get::
  55        Get the value for a given key (optionally filtered by a regex
  56        matching the value).
  57
  58--get-all::
  59        Like get, but does not fail if the number of values for the key
  60        is not exactly one.
  61
  62--unset::
  63        Remove the line matching the key from .git/config.
  64
  65--unset-all::
  66        Remove all matching lines from .git/config.
  67
  68
  69EXAMPLE
  70-------
  71
  72Given a .git/config like this:
  73
  74        #
  75        # This is the config file, and
  76        # a '#' or ';' character indicates
  77        # a comment
  78        #
  79
  80        ; core variables
  81        [core]
  82                ; Don't trust file modes
  83                filemode = false
  84
  85        ; Our diff algorithm
  86        [diff]
  87                external = "/usr/local/bin/gnu-diff -u"
  88                renames = true
  89
  90        ; Proxy settings
  91        [core]
  92                gitproxy="ssh" for "ssh://kernel.org/"
  93                gitproxy="proxy-command" for kernel.org
  94                gitproxy="myprotocol-command" for "my://"
  95                gitproxy=default-proxy ; for all the rest
  96
  97you can set the filemode to true with
  98
  99------------
 100% git repo-config core.filemode true
 101------------
 102
 103The hypothetic proxy command entries actually have a postfix to discern
 104to what URL they apply. Here is how to change the entry for kernel.org
 105to "ssh".
 106
 107------------
 108% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
 109------------
 110
 111This makes sure that only the key/value pair for kernel.org is replaced.
 112
 113To delete the entry for renames, do
 114
 115------------
 116% git repo-config --unset diff.renames
 117------------
 118
 119If you want to delete an entry for a multivar (like core.gitproxy above),
 120you have to provide a regex matching the value of exactly one line.
 121
 122To query the value for a given key, do
 123
 124------------
 125% git repo-config --get core.filemode
 126------------
 127
 128or
 129
 130------------
 131% git repo-config core.filemode
 132------------
 133
 134or, to query a multivar:
 135
 136------------
 137% git repo-config --get core.gitproxy "for kernel.org$"
 138------------
 139
 140If you want to know all the values for a multivar, do:
 141
 142------------
 143% git repo-config --get-all core.gitproxy
 144------------
 145
 146If you like to live dangerous, you can replace *all* core.gitproxy by a
 147new one with
 148
 149------------
 150% git repo-config --replace-all core.gitproxy ssh
 151------------
 152
 153However, if you really only want to replace the line for the default proxy,
 154i.e. the one without a "for ..." postfix, do something like this:
 155
 156------------
 157% git repo-config core.gitproxy ssh '! for '
 158------------
 159
 160To actually match only values with an exclamation mark, you have to
 161
 162------------
 163% git repo-config section.key value '[!]'
 164------------
 165
 166
 167include::config.txt[]
 168
 169
 170Author
 171------
 172Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
 173
 174Documentation
 175--------------
 176Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.
 177
 178GIT
 179---
 180Part of the gitlink:git[7] suite
 181