]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-repo-config.txt
Many fixes for most operations in Eclipse.
[thirdparty/git.git] / Documentation / git-repo-config.txt
CommitLineData
ee72aeaf
JS
1git-repo-config(1)
2==================
2d2465c0
JS
3
4NAME
5----
7bd7f280 6git-repo-config - Get and set options in .git/config
2d2465c0
JS
7
8
9SYNOPSIS
10--------
c7569b1e 11[verse]
7162dff3
PB
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]
de791f15 18'git-repo-config' -l | --list
2d2465c0
JS
19
20DESCRIPTION
21-----------
4ddba79d
JS
22You can query/set/replace/unset options with this command. The name is
23actually the section and the key separated by a dot, and the value will be
24escaped.
2d2465c0 25
89438677 26If you want to set/unset an option which can occur on multiple lines, you
f98d863d 27should provide a POSIX regex for the value. If you want to handle the lines
89438677 28*not* matching the regex, just prepend a single exclamation mark in front
f98d863d 29(see EXAMPLES).
2d2465c0 30
7162dff3
PB
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
2b5f3ed3 37This command will fail if:
2d2465c0 38
2b5f3ed3
SE
39. The .git/config file is invalid,
40. Can not write to .git/config,
2d2465c0
JS
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
4ddba79d
JS
50--replace-all::
51 Default behaviour is to replace at most one line. This replaces
2fa9a0fb 52 all lines matching the key (and optionally the value_regex).
4ddba79d
JS
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
2fa9a0fb
JS
62--get-regexp::
63 Like --get-all, but interprets the name as a regular expression.
64
2d2465c0 65--unset::
4ddba79d
JS
66 Remove the line matching the key from .git/config.
67
68--unset-all::
69 Remove all matching lines from .git/config.
2d2465c0 70
de791f15
PB
71-l, --list::
72 List all variables set in .git/config.
73
2d2465c0
JS
74
75EXAMPLE
76-------
77
78Given a .git/config like this:
79
80 #
81 # This is the config file, and
82 # a '#' or ';' character indicates
83 # a comment
84 #
85
86 ; core variables
87 [core]
88 ; Don't trust file modes
89 filemode = false
90
91 ; Our diff algorithm
92 [diff]
93 external = "/usr/local/bin/gnu-diff -u"
94 renames = true
95
96 ; Proxy settings
1ab661dd
PB
97 [core]
98 gitproxy="ssh" for "ssh://kernel.org/"
99 gitproxy="proxy-command" for kernel.org
100 gitproxy="myprotocol-command" for "my://"
101 gitproxy=default-proxy ; for all the rest
2d2465c0
JS
102
103you can set the filemode to true with
104
105------------
ee72aeaf 106% git repo-config core.filemode true
2d2465c0
JS
107------------
108
109The hypothetic proxy command entries actually have a postfix to discern
110to what URL they apply. Here is how to change the entry for kernel.org
111to "ssh".
112
113------------
1ab661dd 114% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
2d2465c0
JS
115------------
116
117This makes sure that only the key/value pair for kernel.org is replaced.
118
119To delete the entry for renames, do
120
121------------
ee72aeaf 122% git repo-config --unset diff.renames
2d2465c0
JS
123------------
124
1ab661dd 125If you want to delete an entry for a multivar (like core.gitproxy above),
4ddba79d
JS
126you have to provide a regex matching the value of exactly one line.
127
128To query the value for a given key, do
2d2465c0
JS
129
130------------
ee72aeaf 131% git repo-config --get core.filemode
2d2465c0
JS
132------------
133
4ddba79d
JS
134or
135
136------------
ee72aeaf 137% git repo-config core.filemode
4ddba79d
JS
138------------
139
140or, to query a multivar:
141
142------------
1ab661dd 143% git repo-config --get core.gitproxy "for kernel.org$"
4ddba79d
JS
144------------
145
146If you want to know all the values for a multivar, do:
147
148------------
1ab661dd 149% git repo-config --get-all core.gitproxy
4ddba79d
JS
150------------
151
1ab661dd 152If you like to live dangerous, you can replace *all* core.gitproxy by a
4ddba79d
JS
153new one with
154
155------------
1ab661dd 156% git repo-config --replace-all core.gitproxy ssh
4ddba79d 157------------
2d2465c0 158
f98d863d
JS
159However, if you really only want to replace the line for the default proxy,
160i.e. the one without a "for ..." postfix, do something like this:
161
162------------
1ab661dd 163% git repo-config core.gitproxy ssh '! for '
f98d863d
JS
164------------
165
166To actually match only values with an exclamation mark, you have to
167
168------------
ee72aeaf 169% git repo-config section.key value '[!]'
f98d863d
JS
170------------
171
2d2465c0 172
1ab661dd
PB
173include::config.txt[]
174
175
2d2465c0
JS
176Author
177------
178Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
179
180Documentation
181--------------
1ab661dd 182Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.
2d2465c0
JS
183
184GIT
185---
186Part of the gitlink:git[7] suite
187