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