]>
Commit | Line | Data |
---|---|---|
ee72aeaf JS |
1 | git-repo-config(1) |
2 | ================== | |
2d2465c0 JS |
3 | |
4 | NAME | |
5 | ---- | |
7bd7f280 | 6 | git-repo-config - Get and set options in .git/config |
2d2465c0 JS |
7 | |
8 | ||
9 | SYNOPSIS | |
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] | |
2d2465c0 JS |
18 | |
19 | DESCRIPTION | |
20 | ----------- | |
4ddba79d JS |
21 | You can query/set/replace/unset options with this command. The name is |
22 | actually the section and the key separated by a dot, and the value will be | |
23 | escaped. | |
2d2465c0 | 24 | |
6fe31e2e JH |
25 | If you want to set/unset an option which can occur on multiple |
26 | lines, a POSIX regexp `value_regex` needs to be given. Only the | |
27 | existing values that match the regexp are updated or unset. If | |
28 | you want to handle the lines that do *not* match the regex, just | |
29 | prepend a single exclamation mark in front (see EXAMPLES). | |
2d2465c0 | 30 | |
7162dff3 PB |
31 | The 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 | |
33 | convert the value to the canonical form (simple decimal number for int, | |
34 | a "true" or "false" string for bool). If no type specifier is passed, | |
35 | no checks or transformations are performed on the value. | |
36 | ||
2d2465c0 JS |
37 | This 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 | ||
47 | OPTIONS | |
48 | ------- | |
49 | ||
4ddba79d JS |
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 | ||
2d2465c0 | 62 | --unset:: |
4ddba79d JS |
63 | Remove the line matching the key from .git/config. |
64 | ||
65 | --unset-all:: | |
66 | Remove all matching lines from .git/config. | |
2d2465c0 JS |
67 | |
68 | ||
69 | EXAMPLE | |
70 | ------- | |
71 | ||
72 | Given 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 | |
1ab661dd PB |
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 | |
2d2465c0 JS |
96 | |
97 | you can set the filemode to true with | |
98 | ||
99 | ------------ | |
ee72aeaf | 100 | % git repo-config core.filemode true |
2d2465c0 JS |
101 | ------------ |
102 | ||
103 | The hypothetic proxy command entries actually have a postfix to discern | |
104 | to what URL they apply. Here is how to change the entry for kernel.org | |
105 | to "ssh". | |
106 | ||
107 | ------------ | |
1ab661dd | 108 | % git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$' |
2d2465c0 JS |
109 | ------------ |
110 | ||
111 | This makes sure that only the key/value pair for kernel.org is replaced. | |
112 | ||
113 | To delete the entry for renames, do | |
114 | ||
115 | ------------ | |
ee72aeaf | 116 | % git repo-config --unset diff.renames |
2d2465c0 JS |
117 | ------------ |
118 | ||
1ab661dd | 119 | If you want to delete an entry for a multivar (like core.gitproxy above), |
4ddba79d JS |
120 | you have to provide a regex matching the value of exactly one line. |
121 | ||
122 | To query the value for a given key, do | |
2d2465c0 JS |
123 | |
124 | ------------ | |
ee72aeaf | 125 | % git repo-config --get core.filemode |
2d2465c0 JS |
126 | ------------ |
127 | ||
4ddba79d JS |
128 | or |
129 | ||
130 | ------------ | |
ee72aeaf | 131 | % git repo-config core.filemode |
4ddba79d JS |
132 | ------------ |
133 | ||
134 | or, to query a multivar: | |
135 | ||
136 | ------------ | |
1ab661dd | 137 | % git repo-config --get core.gitproxy "for kernel.org$" |
4ddba79d JS |
138 | ------------ |
139 | ||
140 | If you want to know all the values for a multivar, do: | |
141 | ||
142 | ------------ | |
1ab661dd | 143 | % git repo-config --get-all core.gitproxy |
4ddba79d JS |
144 | ------------ |
145 | ||
1ab661dd | 146 | If you like to live dangerous, you can replace *all* core.gitproxy by a |
4ddba79d JS |
147 | new one with |
148 | ||
149 | ------------ | |
1ab661dd | 150 | % git repo-config --replace-all core.gitproxy ssh |
4ddba79d | 151 | ------------ |
2d2465c0 | 152 | |
f98d863d JS |
153 | However, if you really only want to replace the line for the default proxy, |
154 | i.e. the one without a "for ..." postfix, do something like this: | |
155 | ||
156 | ------------ | |
1ab661dd | 157 | % git repo-config core.gitproxy ssh '! for ' |
f98d863d JS |
158 | ------------ |
159 | ||
160 | To actually match only values with an exclamation mark, you have to | |
161 | ||
162 | ------------ | |
ee72aeaf | 163 | % git repo-config section.key value '[!]' |
f98d863d JS |
164 | ------------ |
165 | ||
2d2465c0 | 166 | |
1ab661dd PB |
167 | include::config.txt[] |
168 | ||
169 | ||
2d2465c0 JS |
170 | Author |
171 | ------ | |
172 | Written by Johannes Schindelin <Johannes.Schindelin@gmx.de> | |
173 | ||
174 | Documentation | |
175 | -------------- | |
1ab661dd | 176 | Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>. |
2d2465c0 JS |
177 | |
178 | GIT | |
179 | --- | |
180 | Part of the gitlink:git[7] suite | |
181 |