.\"Generated by db2man.xsl. Don't modify this, modify the source. .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "GIT-SEND-PACK" 1 "" "" "" .SH NAME git-send-pack \- Push missing objects packed. .SH "SYNOPSIS" git\-send\-pack [\-\-all] [\-\-force] [\-\-exec=] [:] [...] .SH "DESCRIPTION" Invokes git\-receive\-pack on a possibly remote repository, and updates it from the current repository, sending named refs\&. .SH "OPTIONS" .TP \-\-exec= Path to the git\-receive\-pack 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\&. .TP \-\-all Instead of explicitly specifying which refs to update, update all refs that locally exist\&. .TP \-\-force 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\&. .TP A remote host to house the repository\&. When this part is specified, git\-receive\-pack is invoked via ssh\&. .TP The repository to update\&. ...: The remote refs to update\&. .SH "SPECIFYING THE REFS" There are three ways to specify which refs to update on the remote end\&. With \-\-all flag, all refs that exist locally are transfered to the remote side\&. You cannot specify any if you use this flag\&. Without \-\-all and without any , the refs that exist both on the local side and on the remote side are updated\&. When one or more 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 is just a shorthand for :\&. 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\&. .TP 3 \(bu It is an error if does not match exactly one of the local refs\&. .TP \(bu It is an error if matches more than one remote refs\&. .TP \(bu If does not match any remote ref, either .RS .TP 3 \(bu it has to start with "refs/"; is used as the destination literally in this case\&. .TP \(bu == and the ref that matched the must not exist in the set of remote refs; the ref matched locally is used as the name of the destination\&. .LP .RE .IP .LP Without \-\-force, the ref is stored at the remote only if does not exist, or is a proper subset (i\&.e\&. an ancestor) of \&. 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\&. With \-\-force, the fast forward check is disabled for all refs\&. Optionally, a parameter can be prefixed with a plus + sign to disable the fast\-forward check only on that ref\&. .SH "AUTHOR" Written by Linus Torvalds .SH "DOCUMENTATION" Documentation by Junio C Hamano\&. .SH "GIT" Part of the \fBgit\fR(7) suite