Documentation / config / url.txton commit First batch after Git 2.23 (745f681)
   1url.<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+
  12Note that any protocol restrictions will be applied to the rewritten
  13URL. If the rewrite changes the URL to use a custom protocol or remote
  14helper, you may need to adjust the `protocol.*.allow` config to permit
  15the request.  In particular, protocols you expect to use for submodules
  16must be set to `always` rather than the default of `user`. See the
  17description of `protocol.allow` above.
  18
  19url.<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.