1 .\"Generated by db2man.xsl. Don't modify this, modify the source.
10 .de Sp \" Vertical space (when we can't use .PP)
16 .ie \\n(.$>=3 .ne \\$3
20 .TH "GIT-SEND-PACK" 1 "" "" ""
22 git-send-pack \- Push missing objects packed
26 \fIgit\-send\-pack\fR [\-\-all] [\-\-force] [\-\-exec=<git\-receive\-pack>] [<host>:]<directory> [<ref>...]
31 Invokes \fIgit\-receive\-pack\fR on a possibly remote repository, and updates it from the current repository, sending named refs\&.
36 \-\-exec=<git\-receive\-pack>
37 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\&.
41 Instead of explicitly specifying which refs to update, update all refs that locally exist\&.
45 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\&.
49 A remote host to house the repository\&. When this part is specified, \fIgit\-receive\-pack\fR is invoked via ssh\&.
53 The repository to update\&.
56 <ref>...: The remote refs to update\&.
58 .SH "SPECIFYING THE REFS"
61 There are three ways to specify which refs to update on the remote end\&.
64 With \fI\-\-all\fR flag, all refs that exist locally are transfered to the remote side\&. You cannot specify any \fI<ref>\fR if you use this flag\&.
67 Without \fI\-\-all\fR and without any \fI<ref>\fR, the refs that exist both on the local side and on the remote side are updated\&.
70 When one or more \fI<ref>\fR are specified explicitly, 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\&.
73 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\&.
77 It is an error if <src> does not match exactly one of the local refs\&.
80 It is an error if <dst> matches more than one remote refs\&.
83 If <dst> does not match any remote ref, either
88 it has to start with "refs/"; <dst> is used as the destination literally in this case\&.
91 <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\&.
98 Without \fI\-\-force\fR, 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' commits from there\&.
101 With \fI\-\-force\fR, the fast forward check is disabled for all refs\&.
104 Optionally, a <ref> parameter can be prefixed with a plus \fI+\fR sign to disable the fast\-forward check only on that ref\&.
109 Written by Linus Torvalds <torvalds@osdl\&.org>
114 Documentation by Junio C Hamano\&.
119 Part of the \fBgit\fR(7) suite