Spaces:
Sleeping
Sleeping
'\" t | |
.\" Title: gitremote-helpers | |
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] | |
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> | |
.\" Date: 04/24/2023 | |
.\" Manual: Git Manual | |
.\" Source: Git 2.40.1 | |
.\" Language: English | |
.\" | |
.TH "GITREMOTE\-HELPERS" "7" "04/24/2023" "Git 2\&.40\&.1" "Git Manual" | |
.\" ----------------------------------------------------------------- | |
.\" * Define some portability stuff | |
.\" ----------------------------------------------------------------- | |
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
.\" http://bugs.debian.org/507673 | |
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html | |
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
.ie \n(.g .ds Aq \(aq | |
.el .ds Aq ' | |
.\" ----------------------------------------------------------------- | |
.\" * set default formatting | |
.\" ----------------------------------------------------------------- | |
.\" disable hyphenation | |
.nh | |
.\" disable justification (adjust text to left margin only) | |
.ad l | |
.\" ----------------------------------------------------------------- | |
.\" * MAIN CONTENT STARTS HERE * | |
.\" ----------------------------------------------------------------- | |
.SH "NAME" | |
gitremote-helpers \- Helper programs to interact with remote repositories | |
.SH "SYNOPSIS" | |
.sp | |
.nf | |
\fIgit remote\-<transport>\fR <repository> [<URL>] | |
.fi | |
.sp | |
.SH "DESCRIPTION" | |
.sp | |
Remote helper programs are normally not used directly by end users, but they are invoked by Git when it needs to interact with remote repositories Git does not support natively\&. A given helper will implement a subset of the capabilities documented here\&. When Git needs to interact with a repository using a remote helper, it spawns the helper as an independent process, sends commands to the helper\(cqs standard input, and expects results from the helper\(cqs standard output\&. Because a remote helper runs as an independent process from Git, there is no need to re\-link Git to add a new helper, nor any need to link the helper with the implementation of Git\&. | |
.sp | |
Every helper must support the "capabilities" command, which Git uses to determine what other commands the helper will accept\&. Those other commands can be used to discover and update remote refs, transport objects between the object database and the remote repository, and update the local object store\&. | |
.sp | |
Git comes with a "curl" family of remote helpers, that handle various transport protocols, such as \fIgit\-remote\-http\fR, \fIgit\-remote\-https\fR, \fIgit\-remote\-ftp\fR and \fIgit\-remote\-ftps\fR\&. They implement the capabilities \fIfetch\fR, \fIoption\fR, and \fIpush\fR\&. | |
.SH "INVOCATION" | |
.sp | |
Remote helper programs are invoked with one or (optionally) two arguments\&. The first argument specifies a remote repository as in Git; it is either the name of a configured remote or a URL\&. The second argument specifies a URL; it is usually of the form \fI<transport>://<address>\fR, but any arbitrary string is possible\&. The \fBGIT_DIR\fR environment variable is set up for the remote helper and can be used to determine where to store additional data or from which directory to invoke auxiliary Git commands\&. | |
.sp | |
When Git encounters a URL of the form \fI<transport>://<address>\fR, where \fI<transport>\fR is a protocol that it cannot handle natively, it automatically invokes \fIgit remote\-<transport>\fR with the full URL as the second argument\&. If such a URL is encountered directly on the command line, the first argument is the same as the second, and if it is encountered in a configured remote, the first argument is the name of that remote\&. | |
.sp | |
A URL of the form \fI<transport>::<address>\fR explicitly instructs Git to invoke \fIgit remote\-<transport>\fR with \fI<address>\fR as the second argument\&. If such a URL is encountered directly on the command line, the first argument is \fI<address>\fR, and if it is encountered in a configured remote, the first argument is the name of that remote\&. | |
.sp | |
Additionally, when a configured remote has \fBremote\&.<name>\&.vcs\fR set to \fI<transport>\fR, Git explicitly invokes \fIgit remote\-<transport>\fR with \fI<name>\fR as the first argument\&. If set, the second argument is \fBremote\&.<name>\&.url\fR; otherwise, the second argument is omitted\&. | |
.SH "INPUT FORMAT" | |
.sp | |
Git sends the remote helper a list of commands on standard input, one per line\&. The first command is always the \fIcapabilities\fR command, in response to which the remote helper must print a list of the capabilities it supports (see below) followed by a blank line\&. The response to the capabilities command determines what commands Git uses in the remainder of the command stream\&. | |
.sp | |
The command stream is terminated by a blank line\&. In some cases (indicated in the documentation of the relevant commands), this blank line is followed by a payload in some other protocol (e\&.g\&., the pack protocol), while in others it indicates the end of input\&. | |
.SS "Capabilities" | |
.sp | |
Each remote helper is expected to support only a subset of commands\&. The operations a helper supports are declared to Git in the response to the \fBcapabilities\fR command (see COMMANDS, below)\&. | |
.sp | |
In the following, we list all defined capabilities and for each we list which commands a helper with that capability must provide\&. | |
.sp | |
.it 1 an-trap | |
.nr an-no-space-flag 1 | |
.nr an-break-flag 1 | |
.br | |
.ps +1 | |
\fBCapabilities for Pushing\fR | |
.RS 4 | |
.PP | |
\fIconnect\fR | |
.RS 4 | |
Can attempt to connect to | |
\fIgit receive\-pack\fR | |
(for pushing), | |
\fIgit upload\-pack\fR, etc for communication using git\(cqs native packfile protocol\&. This requires a bidirectional, full\-duplex connection\&. | |
.sp | |
Supported commands: | |
\fIconnect\fR\&. | |
.RE | |
.PP | |
\fIstateless\-connect\fR | |
.RS 4 | |
Experimental; for internal use only\&. Can attempt to connect to a remote server for communication using git\(cqs wire\-protocol version 2\&. See the documentation for the stateless\-connect command for more information\&. | |
.sp | |
Supported commands: | |
\fIstateless\-connect\fR\&. | |
.RE | |
.PP | |
\fIpush\fR | |
.RS 4 | |
Can discover remote refs and push local commits and the history leading up to them to new or existing remote refs\&. | |
.sp | |
Supported commands: | |
\fIlist for\-push\fR, | |
\fIpush\fR\&. | |
.RE | |
.PP | |
\fIexport\fR | |
.RS 4 | |
Can discover remote refs and push specified objects from a fast\-import stream to remote refs\&. | |
.sp | |
Supported commands: | |
\fIlist for\-push\fR, | |
\fIexport\fR\&. | |
.RE | |
.sp | |
If a helper advertises \fIconnect\fR, Git will use it if possible and fall back to another capability if the helper requests so when connecting (see the \fIconnect\fR command under COMMANDS)\&. When choosing between \fIpush\fR and \fIexport\fR, Git prefers \fIpush\fR\&. Other frontends may have some other order of preference\&. | |
.PP | |
\fIno\-private\-update\fR | |
.RS 4 | |
When using the | |
\fIrefspec\fR | |
capability, git normally updates the private ref on successful push\&. This update is disabled when the remote\-helper declares the capability | |
\fIno\-private\-update\fR\&. | |
.RE | |
.RE | |
.sp | |
.it 1 an-trap | |
.nr an-no-space-flag 1 | |
.nr an-break-flag 1 | |
.br | |
.ps +1 | |
\fBCapabilities for Fetching\fR | |
.RS 4 | |
.PP | |
\fIconnect\fR | |
.RS 4 | |
Can try to connect to | |
\fIgit upload\-pack\fR | |
(for fetching), | |
\fIgit receive\-pack\fR, etc for communication using the Git\(cqs native packfile protocol\&. This requires a bidirectional, full\-duplex connection\&. | |
.sp | |
Supported commands: | |
\fIconnect\fR\&. | |
.RE | |
.PP | |
\fIstateless\-connect\fR | |
.RS 4 | |
Experimental; for internal use only\&. Can attempt to connect to a remote server for communication using git\(cqs wire\-protocol version 2\&. See the documentation for the stateless\-connect command for more information\&. | |
.sp | |
Supported commands: | |
\fIstateless\-connect\fR\&. | |
.RE | |
.PP | |
\fIfetch\fR | |
.RS 4 | |
Can discover remote refs and transfer objects reachable from them to the local object store\&. | |
.sp | |
Supported commands: | |
\fIlist\fR, | |
\fIfetch\fR\&. | |
.RE | |
.PP | |
\fIimport\fR | |
.RS 4 | |
Can discover remote refs and output objects reachable from them as a stream in fast\-import format\&. | |
.sp | |
Supported commands: | |
\fIlist\fR, | |
\fIimport\fR\&. | |
.RE | |
.PP | |
\fIcheck\-connectivity\fR | |
.RS 4 | |
Can guarantee that when a clone is requested, the received pack is self contained and is connected\&. | |
.RE | |
.PP | |
\fIget\fR | |
.RS 4 | |
Can use the | |
\fIget\fR | |
command to download a file from a given URI\&. | |
.RE | |
.sp | |
If a helper advertises \fIconnect\fR, Git will use it if possible and fall back to another capability if the helper requests so when connecting (see the \fIconnect\fR command under COMMANDS)\&. When choosing between \fIfetch\fR and \fIimport\fR, Git prefers \fIfetch\fR\&. Other frontends may have some other order of preference\&. | |
.RE | |
.sp | |
.it 1 an-trap | |
.nr an-no-space-flag 1 | |
.nr an-break-flag 1 | |
.br | |
.ps +1 | |
\fBMiscellaneous capabilities\fR | |
.RS 4 | |
.PP | |
\fIoption\fR | |
.RS 4 | |
For specifying settings like | |
\fBverbosity\fR | |
(how much output to write to stderr) and | |
\fBdepth\fR | |
(how much history is wanted in the case of a shallow clone) that affect how other commands are carried out\&. | |
.RE | |
.PP | |
\fIrefspec\fR <refspec> | |
.RS 4 | |
For remote helpers that implement | |
\fIimport\fR | |
or | |
\fIexport\fR, this capability allows the refs to be constrained to a private namespace, instead of writing to refs/heads or refs/remotes directly\&. It is recommended that all importers providing the | |
\fIimport\fR | |
capability use this\&. It\(cqs mandatory for | |
\fIexport\fR\&. | |
.sp | |
A helper advertising the capability | |
\fBrefspec refs/heads/*:refs/svn/origin/branches/*\fR | |
is saying that, when it is asked to | |
\fBimport refs/heads/topic\fR, the stream it outputs will update the | |
\fBrefs/svn/origin/branches/topic\fR | |
ref\&. | |
.sp | |
This capability can be advertised multiple times\&. The first applicable refspec takes precedence\&. The left\-hand of refspecs advertised with this capability must cover all refs reported by the list command\&. If no | |
\fIrefspec\fR | |
capability is advertised, there is an implied | |
\fBrefspec *:*\fR\&. | |
.sp | |
When writing remote\-helpers for decentralized version control systems, it is advised to keep a local copy of the repository to interact with, and to let the private namespace refs point to this local repository, while the refs/remotes namespace is used to track the remote repository\&. | |
.RE | |
.PP | |
\fIbidi\-import\fR | |
.RS 4 | |
This modifies the | |
\fIimport\fR | |
capability\&. The fast\-import commands | |
\fIcat\-blob\fR | |
and | |
\fIls\fR | |
can be used by remote\-helpers to retrieve information about blobs and trees that already exist in fast\-import\(cqs memory\&. This requires a channel from fast\-import to the remote\-helper\&. If it is advertised in addition to "import", Git establishes a pipe from fast\-import to the remote\-helper\(cqs stdin\&. It follows that Git and fast\-import are both connected to the remote\-helper\(cqs stdin\&. Because Git can send multiple commands to the remote\-helper it is required that helpers that use | |
\fIbidi\-import\fR | |
buffer all | |
\fIimport\fR | |
commands of a batch before sending data to fast\-import\&. This is to prevent mixing commands and fast\-import responses on the helper\(cqs stdin\&. | |
.RE | |
.PP | |
\fIexport\-marks\fR <file> | |
.RS 4 | |
This modifies the | |
\fIexport\fR | |
capability, instructing Git to dump the internal marks table to <file> when complete\&. For details, read up on | |
\fB\-\-export\-marks=<file>\fR | |
in | |
\fBgit-fast-export\fR(1)\&. | |
.RE | |
.PP | |
\fIimport\-marks\fR <file> | |
.RS 4 | |
This modifies the | |
\fIexport\fR | |
capability, instructing Git to load the marks specified in <file> before processing any input\&. For details, read up on | |
\fB\-\-import\-marks=<file>\fR | |
in | |
\fBgit-fast-export\fR(1)\&. | |
.RE | |
.PP | |
\fIsigned\-tags\fR | |
.RS 4 | |
This modifies the | |
\fIexport\fR | |
capability, instructing Git to pass | |
\fB\-\-signed\-tags=verbatim\fR | |
to | |
\fBgit-fast-export\fR(1)\&. In the absence of this capability, Git will use | |
\fB\-\-signed\-tags=warn\-strip\fR\&. | |
.RE | |
.PP | |
\fIobject\-format\fR | |
.RS 4 | |
This indicates that the helper is able to interact with the remote side using an explicit hash algorithm extension\&. | |
.RE | |
.RE | |
.SH "COMMANDS" | |
.sp | |
Commands are given by the caller on the helper\(cqs standard input, one per line\&. | |
.PP | |
\fIcapabilities\fR | |
.RS 4 | |
Lists the capabilities of the helper, one per line, ending with a blank line\&. Each capability may be preceded with | |
\fI*\fR, which marks them mandatory for Git versions using the remote helper to understand\&. Any unknown mandatory capability is a fatal error\&. | |
.sp | |
Support for this command is mandatory\&. | |
.RE | |
.PP | |
\fIlist\fR | |
.RS 4 | |
Lists the refs, one per line, in the format "<value> <name> [<attr> \&...]"\&. The value may be a hex sha1 hash, "@<dest>" for a symref, ":<keyword> <value>" for a key\-value pair, or "?" to indicate that the helper could not get the value of the ref\&. A space\-separated list of attributes follows the name; unrecognized attributes are ignored\&. The list ends with a blank line\&. | |
.sp | |
See REF LIST ATTRIBUTES for a list of currently defined attributes\&. See REF LIST KEYWORDS for a list of currently defined keywords\&. | |
.sp | |
Supported if the helper has the "fetch" or "import" capability\&. | |
.RE | |
.PP | |
\fIlist for\-push\fR | |
.RS 4 | |
Similar to | |
\fIlist\fR, except that it is used if and only if the caller wants to the resulting ref list to prepare push commands\&. A helper supporting both push and fetch can use this to distinguish for which operation the output of | |
\fIlist\fR | |
is going to be used, possibly reducing the amount of work that needs to be performed\&. | |
.sp | |
Supported if the helper has the "push" or "export" capability\&. | |
.RE | |
.PP | |
\fIoption\fR <name> <value> | |
.RS 4 | |
Sets the transport helper option <name> to <value>\&. Outputs a single line containing one of | |
\fIok\fR | |
(option successfully set), | |
\fIunsupported\fR | |
(option not recognized) or | |
\fIerror <msg>\fR | |
(option <name> is supported but <value> is not valid for it)\&. Options should be set before other commands, and may influence the behavior of those commands\&. | |
.sp | |
See OPTIONS for a list of currently defined options\&. | |
.sp | |
Supported if the helper has the "option" capability\&. | |
.RE | |
.PP | |
\fIfetch\fR <sha1> <name> | |
.RS 4 | |
Fetches the given object, writing the necessary objects to the database\&. Fetch commands are sent in a batch, one per line, terminated with a blank line\&. Outputs a single blank line when all fetch commands in the same batch are complete\&. Only objects which were reported in the output of | |
\fIlist\fR | |
with a sha1 may be fetched this way\&. | |
.sp | |
Optionally may output a | |
\fIlock <file>\fR | |
line indicating the full path of a file under | |
\fB$GIT_DIR/objects/pack\fR | |
which is keeping a pack until refs can be suitably updated\&. The path must end with | |
\fB\&.keep\fR\&. This is a mechanism to name a <pack,idx,keep> tuple by giving only the keep component\&. The kept pack will not be deleted by a concurrent repack, even though its objects may not be referenced until the fetch completes\&. The | |
\fB\&.keep\fR | |
file will be deleted at the conclusion of the fetch\&. | |
.sp | |
If option | |
\fIcheck\-connectivity\fR | |
is requested, the helper must output | |
\fIconnectivity\-ok\fR | |
if the clone is self\-contained and connected\&. | |
.sp | |
Supported if the helper has the "fetch" capability\&. | |
.RE | |
.PP | |
\fIpush\fR +<src>:<dst> | |
.RS 4 | |
Pushes the given local <src> commit or branch to the remote branch described by <dst>\&. A batch sequence of one or more | |
\fIpush\fR | |
commands is terminated with a blank line (if there is only one reference to push, a single | |
\fIpush\fR | |
command is followed by a blank line)\&. For example, the following would be two batches of | |
\fIpush\fR, the first asking the remote\-helper to push the local ref | |
\fImaster\fR | |
to the remote ref | |
\fImaster\fR | |
and the local | |
\fBHEAD\fR | |
to the remote | |
\fIbranch\fR, and the second asking to push ref | |
\fIfoo\fR | |
to ref | |
\fIbar\fR | |
(forced update requested by the | |
\fI+\fR)\&. | |
.sp | |
.if n \{\ | |
.RS 4 | |
.\} | |
.nf | |
push refs/heads/master:refs/heads/master | |
push HEAD:refs/heads/branch | |
\en | |
push +refs/heads/foo:refs/heads/bar | |
\en | |
.fi | |
.if n \{\ | |
.RE | |
.\} | |
.sp | |
Zero or more protocol options may be entered after the last | |
\fIpush\fR | |
command, before the batch\(cqs terminating blank line\&. | |
.sp | |
When the push is complete, outputs one or more | |
\fIok <dst>\fR | |
or | |
\fIerror <dst> <why>?\fR | |
lines to indicate success or failure of each pushed ref\&. The status report output is terminated by a blank line\&. The option field <why> may be quoted in a C style string if it contains an LF\&. | |
.sp | |
Supported if the helper has the "push" capability\&. | |
.RE | |
.PP | |
\fIimport\fR <name> | |
.RS 4 | |
Produces a fast\-import stream which imports the current value of the named ref\&. It may additionally import other refs as needed to construct the history efficiently\&. The script writes to a helper\-specific private namespace\&. The value of the named ref should be written to a location in this namespace derived by applying the refspecs from the "refspec" capability to the name of the ref\&. | |
.sp | |
Especially useful for interoperability with a foreign versioning system\&. | |
.sp | |
Just like | |
\fIpush\fR, a batch sequence of one or more | |
\fIimport\fR | |
is terminated with a blank line\&. For each batch of | |
\fIimport\fR, the remote helper should produce a fast\-import stream terminated by a | |
\fIdone\fR | |
command\&. | |
.sp | |
Note that if the | |
\fIbidi\-import\fR | |
capability is used the complete batch sequence has to be buffered before starting to send data to fast\-import to prevent mixing of commands and fast\-import responses on the helper\(cqs stdin\&. | |
.sp | |
Supported if the helper has the "import" capability\&. | |
.RE | |
.PP | |
\fIexport\fR | |
.RS 4 | |
Instructs the remote helper that any subsequent input is part of a fast\-import stream (generated by | |
\fIgit fast\-export\fR) containing objects which should be pushed to the remote\&. | |
.sp | |
Especially useful for interoperability with a foreign versioning system\&. | |
.sp | |
The | |
\fIexport\-marks\fR | |
and | |
\fIimport\-marks\fR | |
capabilities, if specified, affect this command in so far as they are passed on to | |
\fIgit fast\-export\fR, which then will load/store a table of marks for local objects\&. This can be used to implement for incremental operations\&. | |
.sp | |
Supported if the helper has the "export" capability\&. | |
.RE | |
.PP | |
\fIconnect\fR <service> | |
.RS 4 | |
Connects to given service\&. Standard input and standard output of helper are connected to specified service (git prefix is included in service name so e\&.g\&. fetching uses | |
\fIgit\-upload\-pack\fR | |
as service) on remote side\&. Valid replies to this command are empty line (connection established), | |
\fIfallback\fR | |
(no smart transport support, fall back to dumb transports) and just exiting with error message printed (can\(cqt connect, don\(cqt bother trying to fall back)\&. After line feed terminating the positive (empty) response, the output of service starts\&. After the connection ends, the remote helper exits\&. | |
.sp | |
Supported if the helper has the "connect" capability\&. | |
.RE | |
.PP | |
\fIstateless\-connect\fR <service> | |
.RS 4 | |
Experimental; for internal use only\&. Connects to the given remote service for communication using git\(cqs wire\-protocol version 2\&. Valid replies to this command are empty line (connection established), | |
\fIfallback\fR | |
(no smart transport support, fall back to dumb transports) and just exiting with error message printed (can\(cqt connect, don\(cqt bother trying to fall back)\&. After line feed terminating the positive (empty) response, the output of the service starts\&. Messages (both request and response) must consist of zero or more PKT\-LINEs, terminating in a flush packet\&. Response messages will then have a response end packet after the flush packet to indicate the end of a response\&. The client must not expect the server to store any state in between request\-response pairs\&. After the connection ends, the remote helper exits\&. | |
.sp | |
Supported if the helper has the "stateless\-connect" capability\&. | |
.RE | |
.PP | |
\fIget\fR <uri> <path> | |
.RS 4 | |
Downloads the file from the given | |
\fB<uri>\fR | |
to the given | |
\fB<path>\fR\&. If | |
\fB<path>\&.temp\fR | |
exists, then Git assumes that the | |
\fB\&.temp\fR | |
file is a partial download from a previous attempt and will resume the download from that position\&. | |
.RE | |
.sp | |
If a fatal error occurs, the program writes the error message to stderr and exits\&. The caller should expect that a suitable error message has been printed if the child closes the connection without completing a valid response for the current command\&. | |
.sp | |
Additional commands may be supported, as may be determined from capabilities reported by the helper\&. | |
.SH "REF LIST ATTRIBUTES" | |
.sp | |
The \fIlist\fR command produces a list of refs in which each ref may be followed by a list of attributes\&. The following ref list attributes are defined\&. | |
.PP | |
\fIunchanged\fR | |
.RS 4 | |
This ref is unchanged since the last import or fetch, although the helper cannot necessarily determine what value that produced\&. | |
.RE | |
.SH "REF LIST KEYWORDS" | |
.sp | |
The \fIlist\fR command may produce a list of key\-value pairs\&. The following keys are defined\&. | |
.PP | |
\fIobject\-format\fR | |
.RS 4 | |
The refs are using the given hash algorithm\&. This keyword is only used if the server and client both support the object\-format extension\&. | |
.RE | |
.SH "OPTIONS" | |
.sp | |
The following options are defined and (under suitable circumstances) set by Git if the remote helper has the \fIoption\fR capability\&. | |
.PP | |
\fIoption verbosity\fR <n> | |
.RS 4 | |
Changes the verbosity of messages displayed by the helper\&. A value of 0 for <n> means that processes operate quietly, and the helper produces only error output\&. 1 is the default level of verbosity, and higher values of <n> correspond to the number of \-v flags passed on the command line\&. | |
.RE | |
.PP | |
\fIoption progress\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Enables (or disables) progress messages displayed by the transport helper during a command\&. | |
.RE | |
.PP | |
\fIoption depth\fR <depth> | |
.RS 4 | |
Deepens the history of a shallow repository\&. | |
.RE | |
.PP | |
\*(Aqoption deepen\-since <timestamp> | |
.RS 4 | |
Deepens the history of a shallow repository based on time\&. | |
.RE | |
.PP | |
\*(Aqoption deepen\-not <ref> | |
.RS 4 | |
Deepens the history of a shallow repository excluding ref\&. Multiple options add up\&. | |
.RE | |
.PP | |
\fIoption deepen\-relative {\*(Aqtrue\fR|\fIfalse\fR} | |
.RS 4 | |
Deepens the history of a shallow repository relative to current boundary\&. Only valid when used with "option depth"\&. | |
.RE | |
.PP | |
\fIoption followtags\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
If enabled the helper should automatically fetch annotated tag objects if the object the tag points at was transferred during the fetch command\&. If the tag is not fetched by the helper a second fetch command will usually be sent to ask for the tag specifically\&. Some helpers may be able to use this option to avoid a second network connection\&. | |
.RE | |
.sp | |
\fIoption dry\-run\fR {\fItrue\fR|\fIfalse\fR}: If true, pretend the operation completed successfully, but don\(cqt actually change any repository data\&. For most helpers this only applies to the \fIpush\fR, if supported\&. | |
.PP | |
\fIoption servpath <c\-style\-quoted\-path>\fR | |
.RS 4 | |
Sets service path (\-\-upload\-pack, \-\-receive\-pack etc\&.) for next connect\&. Remote helper may support this option, but must not rely on this option being set before connect request occurs\&. | |
.RE | |
.PP | |
\fIoption check\-connectivity\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Request the helper to check connectivity of a clone\&. | |
.RE | |
.PP | |
\fIoption force\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Request the helper to perform a force update\&. Defaults to | |
\fIfalse\fR\&. | |
.RE | |
.PP | |
\fIoption cloning\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Notify the helper this is a clone request (i\&.e\&. the current repository is guaranteed empty)\&. | |
.RE | |
.PP | |
\fIoption update\-shallow\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Allow to extend \&.git/shallow if the new refs require it\&. | |
.RE | |
.PP | |
\fIoption pushcert\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
GPG sign pushes\&. | |
.RE | |
.PP | |
\*(Aqoption push\-option <string> | |
.RS 4 | |
Transmit <string> as a push option\&. As the push option must not contain LF or NUL characters, the string is not encoded\&. | |
.RE | |
.PP | |
\fIoption from\-promisor\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Indicate that these objects are being fetched from a promisor\&. | |
.RE | |
.PP | |
\fIoption no\-dependents\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
Indicate that only the objects wanted need to be fetched, not their dependents\&. | |
.RE | |
.PP | |
\fIoption atomic\fR {\fItrue\fR|\fIfalse\fR} | |
.RS 4 | |
When pushing, request the remote server to update refs in a single atomic transaction\&. If successful, all refs will be updated, or none will\&. If the remote side does not support this capability, the push will fail\&. | |
.RE | |
.PP | |
\fIoption object\-format\fR {\fItrue\fR|algorithm} | |
.RS 4 | |
If | |
\fItrue\fR, indicate that the caller wants hash algorithm information to be passed back from the remote\&. This mode is used when fetching refs\&. | |
.sp | |
If set to an algorithm, indicate that the caller wants to interact with the remote side using that algorithm\&. | |
.RE | |
.SH "SEE ALSO" | |
.sp | |
\fBgit-remote\fR(1) | |
.sp | |
\fBgit-remote-ext\fR(1) | |
.sp | |
\fBgit-remote-fd\fR(1) | |
.sp | |
\fBgit-fast-import\fR(1) | |
.SH "GIT" | |
.sp | |
Part of the \fBgit\fR(1) suite | |