Home Explore Blog CI



git

Documentation/config/protocol.adoc
ded12e7acfaa0c2a8a5ba3945256ce68c78be8483d039e840000000300000832
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].

--

Chunks
db0c7d64 (1st chunk of `Documentation/config/protocol.adoc`)
Title: Git Protocol Configuration
Summary
The document describes Git protocol configuration options, including default policies for protocols, specific protocol policies, and protocol version settings, to control how Git communicates with servers and handles different protocols such as HTTP, SSH, and Git.