跳转到主要内容

protocol

protocol.allow
If set, provide a user defined default policy for all protocols which don’t explicitly have a policy (protocol.<name>.allow). By default, if unset, known-safe protocols (http, https, git, ssh) have a default policy of always, known-dangerous protocols (ext) have a default policy of never, and all other protocols (including file) have a default policy of user. Supported policies:

--

  • always - protocol is always able to be used.
  • never - protocol is never able to be used.
  • user - protocol is only able to be used when GIT_PROTOCOL_FROM_USER is either unset or has a value of 1. This policy should be used when you want a protocol to be directly usable by the user but don’t want it used by commands which execute clone/fetch/push commands without user input, e.g. recursive submodule initialization.

protocol.<name>.allow
Set a policy to be used by protocol <name> with clone/fetch/push commands. See protocol.allow above for the available policies.

The protocol names currently used by git are:

  • file: any local file-based path (including file:// URLs, or local paths)
  • git: the anonymous git protocol over a direct TCP connection (or proxy, if configured)
  • ssh: git over ssh (including host:path syntax, ssh://, etc).
  • http: git over http, both "smart http" and "dumb http". Note that this does not include https; if you want to configure both, you must do so individually.
  • any external helpers are named by their protocol (e.g., use hg to allow the git-remote-hg helper) --

protocol.version
If set, clients will attempt to communicate with a server using the specified protocol version. If the server does not support it, communication falls back to version 0. If unset, the default is 2. Supported versions:

--

  • 0 - the original wire protocol.
  • 1 - the original wire protocol with the addition of a version string in the initial response from the server.
  • 2 - Wire protocol version 2, see linkgit:gitprotocol-v2[5].

--