gitremote-helpers.7 (24898B)
- '\" t
- .\" Title: gitremote-helpers
- .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
- .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
- .\" Date: 2025-03-14
- .\" Manual: Git Manual
- .\" Source: Git 2.49.0
- .\" Language: English
- .\"
- .TH "GITREMOTE\-HELPERS" "7" "2025-03-14" "Git 2\&.49\&.0" "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
- .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\&.\fR\fI<name>\fR\fB\&.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\&.\fR\fI<name>\fR\fB\&.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\fR
- \fBrefs/heads/\fR*:refs/svn/origin/branches/* is saying that, when it is asked to
- \fBimport\fR
- \fBrefs/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=\fR\fI<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=\fR\fI<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 \&.\fBkeep\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 \&.\fBkeep\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
- \fI<uri>\fR
- to the given
- \fI<path>\fR\&. If
- \fI<path>\fR\fB\&.temp\fR
- exists, then Git assumes that the \&.\fBtemp\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
- \fIoption deepen\-since\fR <timestamp>
- .RS 4
- Deepens the history of a shallow repository based on time\&.
- .RE
- .PP
- \fIoption deepen\-not\fR <ref>
- .RS 4
- Deepens the history of a shallow repository excluding ref\&. Multiple options add up\&.
- .RE
- .PP
- \fIoption deepen\-relative\fR {\fItrue\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
- \fIoption push\-option\fR <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 true\fR
- .RS 4
- Indicate that the caller wants hash algorithm information to be passed back from the remote\&. This mode is used when fetching refs\&.
- .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