]>
Commit | Line | Data |
---|---|---|
ee72aeaf JS |
1 | git-repo-config(1) |
2 | ================== | |
2d2465c0 JS |
3 | |
4 | NAME | |
5 | ---- | |
ee72aeaf | 6 | git-repo-config - Get and set options in .git/config. |
2d2465c0 JS |
7 | |
8 | ||
9 | SYNOPSIS | |
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 | |
18 | DESCRIPTION | |
19 | ----------- | |
4ddba79d JS |
20 | You can query/set/replace/unset options with this command. The name is |
21 | actually the section and the key separated by a dot, and the value will be | |
22 | escaped. | |
2d2465c0 JS |
23 | |
24 | If you want to set/unset an option which can occor on multiple lines, you | |
f98d863d JS |
25 | should provide a POSIX regex for the value. If you want to handle the lines |
26 | *not* matching the regex, just prepend a single exlamation mark in front | |
27 | (see EXAMPLES). | |
2d2465c0 JS |
28 | |
29 | This 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 | ||
39 | OPTIONS | |
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 | ||
61 | EXAMPLE | |
62 | ------- | |
63 | ||
64 | Given 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 | |
89 | you can set the filemode to true with | |
90 | ||
91 | ------------ | |
ee72aeaf | 92 | % git repo-config core.filemode true |
2d2465c0 JS |
93 | ------------ |
94 | ||
95 | The hypothetic proxy command entries actually have a postfix to discern | |
96 | to what URL they apply. Here is how to change the entry for kernel.org | |
97 | to "ssh". | |
98 | ||
99 | ------------ | |
ee72aeaf | 100 | % git repo-config proxy.command '"ssh" for kernel.org' 'for kernel.org$' |
2d2465c0 JS |
101 | ------------ |
102 | ||
103 | This makes sure that only the key/value pair for kernel.org is replaced. | |
104 | ||
105 | To delete the entry for renames, do | |
106 | ||
107 | ------------ | |
ee72aeaf | 108 | % git repo-config --unset diff.renames |
2d2465c0 JS |
109 | ------------ |
110 | ||
4ddba79d JS |
111 | If you want to delete an entry for a multivar (like proxy.command above), |
112 | you have to provide a regex matching the value of exactly one line. | |
113 | ||
114 | To 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 |
120 | or |
121 | ||
122 | ------------ | |
ee72aeaf | 123 | % git repo-config core.filemode |
4ddba79d JS |
124 | ------------ |
125 | ||
126 | or, to query a multivar: | |
127 | ||
128 | ------------ | |
ee72aeaf | 129 | % git repo-config --get proxy.command "for kernel.org$" |
4ddba79d JS |
130 | ------------ |
131 | ||
132 | If 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 | ||
138 | If you like to live dangerous, you can replace *all* proxy.commands by a | |
139 | new one with | |
140 | ||
141 | ------------ | |
ee72aeaf | 142 | % git repo-config --replace-all proxy.command ssh |
4ddba79d | 143 | ------------ |
2d2465c0 | 144 | |
f98d863d JS |
145 | However, if you really only want to replace the line for the default proxy, |
146 | i.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 | ||
152 | To 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 | |
159 | Author | |
160 | ------ | |
161 | Written by Johannes Schindelin <Johannes.Schindelin@gmx.de> | |
162 | ||
163 | Documentation | |
164 | -------------- | |
165 | Documentation by Johannes Schindelin. | |
166 | ||
167 | GIT | |
168 | --- | |
169 | Part of the gitlink:git[7] suite | |
170 |