| 1 | url.<base>.insteadOf:: |
| 2 | Any URL that starts with this value will be rewritten to |
| 3 | start, instead, with <base>. In cases where some site serves a |
| 4 | large number of repositories, and serves them with multiple |
| 5 | access methods, and some users need to use different access |
| 6 | methods, this feature allows people to specify any of the |
| 7 | equivalent URLs and have Git automatically rewrite the URL to |
| 8 | the best alternative for the particular user, even for a |
| 9 | never-before-seen repository on the site. When more than one |
| 10 | insteadOf strings match a given URL, the longest match is used. |
| 11 | + |
| 12 | Note that any protocol restrictions will be applied to the rewritten |
| 13 | URL. If the rewrite changes the URL to use a custom protocol or remote |
| 14 | helper, you may need to adjust the `protocol.*.allow` config to permit |
| 15 | the request. In particular, protocols you expect to use for submodules |
| 16 | must be set to `always` rather than the default of `user`. See the |
| 17 | description of `protocol.allow` above. |
| 18 | |
| 19 | url.<base>.pushInsteadOf:: |
| 20 | Any URL that starts with this value will not be pushed to; |
| 21 | instead, it will be rewritten to start with <base>, and the |
| 22 | resulting URL will be pushed to. In cases where some site serves |
| 23 | a large number of repositories, and serves them with multiple |
| 24 | access methods, some of which do not allow push, this feature |
| 25 | allows people to specify a pull-only URL and have Git |
| 26 | automatically use an appropriate URL to push, even for a |
| 27 | never-before-seen repository on the site. When more than one |
| 28 | pushInsteadOf strings match a given URL, the longest match is |
| 29 | used. If a remote has an explicit pushurl, Git will ignore this |
| 30 | setting for that remote. |