Documentation / config / protocol.txton commit Merge branch 'sc/pack-refs-deletion-racefix' (207ad3c)
   1protocol.allow::
   2        If set, provide a user defined default policy for all protocols which
   3        don't explicitly have a policy (`protocol.<name>.allow`).  By default,
   4        if unset, known-safe protocols (http, https, git, ssh, file) have a
   5        default policy of `always`, known-dangerous protocols (ext) have a
   6        default policy of `never`, and all other protocols have a default
   7        policy of `user`.  Supported policies:
   8+
   9--
  10
  11* `always` - protocol is always able to be used.
  12
  13* `never` - protocol is never able to be used.
  14
  15* `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is
  16  either unset or has a value of 1.  This policy should be used when you want a
  17  protocol to be directly usable by the user but don't want it used by commands which
  18  execute clone/fetch/push commands without user input, e.g. recursive
  19  submodule initialization.
  20
  21--
  22
  23protocol.<name>.allow::
  24        Set a policy to be used by protocol `<name>` with clone/fetch/push
  25        commands. See `protocol.allow` above for the available policies.
  26+
  27The protocol names currently used by git are:
  28+
  29--
  30  - `file`: any local file-based path (including `file://` URLs,
  31    or local paths)
  32
  33  - `git`: the anonymous git protocol over a direct TCP
  34    connection (or proxy, if configured)
  35
  36  - `ssh`: git over ssh (including `host:path` syntax,
  37    `ssh://`, etc).
  38
  39  - `http`: git over http, both "smart http" and "dumb http".
  40    Note that this does _not_ include `https`; if you want to configure
  41    both, you must do so individually.
  42
  43  - any external helpers are named by their protocol (e.g., use
  44    `hg` to allow the `git-remote-hg` helper)
  45--
  46
  47protocol.version::
  48        Experimental. If set, clients will attempt to communicate with a
  49        server using the specified protocol version.  If unset, no
  50        attempt will be made by the client to communicate using a
  51        particular protocol version, this results in protocol version 0
  52        being used.
  53        Supported versions:
  54+
  55--
  56
  57* `0` - the original wire protocol.
  58
  59* `1` - the original wire protocol with the addition of a version string
  60  in the initial response from the server.
  61
  62* `2` - link:technical/protocol-v2.html[wire protocol version 2].
  63
  64--