'\" t
.\"     Title: git-send-pack
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 03/07/2022
.\"    Manual: Git Manual
.\"    Source: Git 2.35.1.415.gc2162907e9
.\"  Language: English
.\"
.TH "GIT\-SEND\-PACK" "1" "03/07/2022" "Git 2\&.35\&.1\&.415\&.gc21629" "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"
git-send-pack \- Push objects over Git protocol to another repository
.SH "SYNOPSIS"
.sp
.nf
\fIgit send\-pack\fR [\-\-dry\-run] [\-\-force] [\-\-receive\-pack=<git\-receive\-pack>]
                [\-\-verbose] [\-\-thin] [\-\-atomic]
                [\-\-[no\-]signed|\-\-signed=(true|false|if\-asked)]
                [<host>:]<directory> (\-\-all | <ref>\&...)
.fi
.sp
.SH "DESCRIPTION"
.sp
Usually you would want to use \fIgit push\fR, which is a higher\-level wrapper of this command, instead\&. See \fBgit-push\fR(1)\&.
.sp
Invokes \fIgit\-receive\-pack\fR on a possibly remote repository, and updates it from the current repository, sending named refs\&.
.SH "OPTIONS"
.PP
\-\-receive\-pack=<git\-receive\-pack>
.RS 4
Path to the
\fIgit\-receive\-pack\fR
program on the remote end\&. Sometimes useful when pushing to a remote repository over ssh, and you do not have the program in a directory on the default $PATH\&.
.RE
.PP
\-\-exec=<git\-receive\-pack>
.RS 4
Same as \-\-receive\-pack=<git\-receive\-pack>\&.
.RE
.PP
\-\-all
.RS 4
Instead of explicitly specifying which refs to update, update all heads that locally exist\&.
.RE
.PP
\-\-stdin
.RS 4
Take the list of refs from stdin, one per line\&. If there are refs specified on the command line in addition to this option, then the refs from stdin are processed after those on the command line\&.
.sp
If
\fB\-\-stateless\-rpc\fR
is specified together with this option then the list of refs must be in packet format (pkt\-line)\&. Each ref must be in a separate packet, and the list must end with a flush packet\&.
.RE
.PP
\-\-dry\-run
.RS 4
Do everything except actually send the updates\&.
.RE
.PP
\-\-force
.RS 4
Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it\&. This flag disables the check\&. What this means is that the remote repository can lose commits; use it with care\&.
.RE
.PP
\-\-verbose
.RS 4
Run verbosely\&.
.RE
.PP
\-\-thin
.RS 4
Send a "thin" pack, which records objects in deltified form based on objects not included in the pack to reduce network traffic\&.
.RE
.PP
\-\-atomic
.RS 4
Use an atomic transaction for updating the refs\&. If any of the refs fails to update then the entire push will fail without changing any refs\&.
.RE
.PP
\-\-[no\-]signed, \-\-signed=(true|false|if\-asked)
.RS 4
GPG\-sign the push request to update refs on the receiving side, to allow it to be checked by the hooks and/or be logged\&. If
\fBfalse\fR
or
\fB\-\-no\-signed\fR, no signing will be attempted\&. If
\fBtrue\fR
or
\fB\-\-signed\fR, the push will fail if the server does not support signed pushes\&. If set to
\fBif\-asked\fR, sign if and only if the server supports signed pushes\&. The push will also fail if the actual call to
\fBgpg \-\-sign\fR
fails\&. See
\fBgit-receive-pack\fR(1)
for the details on the receiving end\&.
.RE
.PP
\-\-push\-option=<string>
.RS 4
Pass the specified string as a push option for consumption by hooks on the server side\&. If the server doesn\(cqt support push options, error out\&. See
\fBgit-push\fR(1)
and
\fBgithooks\fR(5)
for details\&.
.RE
.PP
<host>
.RS 4
A remote host to house the repository\&. When this part is specified,
\fIgit\-receive\-pack\fR
is invoked via ssh\&.
.RE
.PP
<directory>
.RS 4
The repository to update\&.
.RE
.PP
<ref>\&...
.RS 4
The remote refs to update\&.
.RE
.SH "SPECIFYING THE REFS"
.sp
There are three ways to specify which refs to update on the remote end\&.
.sp
With \fB\-\-all\fR flag, all refs that exist locally are transferred to the remote side\&. You cannot specify any \fI<ref>\fR if you use this flag\&.
.sp
Without \fB\-\-all\fR and without any \fI<ref>\fR, the heads that exist both on the local side and on the remote side are updated\&.
.sp
When one or more \fI<ref>\fR are specified explicitly (whether on the command line or via \fB\-\-stdin\fR), it can be either a single pattern, or a pair of such pattern separated by a colon ":" (this means that a ref name cannot have a colon in it)\&. A single pattern \fI<name>\fR is just a shorthand for \fI<name>:<name>\fR\&.
.sp
Each pattern pair consists of the source side (before the colon) and the destination side (after the colon)\&. The ref to be pushed is determined by finding a match that matches the source side, and where it is pushed is determined by using the destination side\&. The rules used to match a ref are the same rules used by \fIgit rev\-parse\fR to resolve a symbolic ref name\&. See \fBgit-rev-parse\fR(1)\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It is an error if <src> does not match exactly one of the local refs\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It is an error if <dst> matches more than one remote refs\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
If <dst> does not match any remote ref, either
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
it has to start with "refs/"; <dst> is used as the destination literally in this case\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
<src> == <dst> and the ref that matched the <src> must not exist in the set of remote refs; the ref matched <src> locally is used as the name of the destination\&.
.RE
.RE
.sp
Without \(oq\-\-force`, the <src> ref is stored at the remote only if <dst> does not exist, or <dst> is a proper subset (i\&.e\&. an ancestor) of <src>\&. This check, known as "fast\-forward check", is performed in order to avoid accidentally overwriting the remote ref and lose other peoples\(cq commits from there\&.
.sp
With \fB\-\-force\fR, the fast\-forward check is disabled for all refs\&.
.sp
Optionally, a <ref> parameter can be prefixed with a plus \fI+\fR sign to disable the fast\-forward check only on that ref\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
