git-send-pack - Push missing objects packed.
git-send-pack [--all] [--exec=<git-receive-pack>] [<host>:]<directory> [<head>…]
Invokes git-receive-pack on a possibly remote repository, and updates it from the current repository, sending named heads.
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.
Instead of explicitly specifying which refs to update, update all refs that locally exist.
A remote host to house the repository. When this part is specified, git-receive-pack is invoked via ssh.
The repository to update.
<head>…: The remote refs to update.
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 <head> if you use this flag.
Without --all and without any <head>, the refs that exist both on the local side and on the remote side are updated.
When <head>'s 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 <name> is just a shorthand for <name>:<name>'. Each pattern pair consists of the source side (before the colon) and the destination side (after the colon). The ref that is pushed is determined by finding a match that matches the source side, and where it is pushed is determined by using the destination side.
It is an error if <src> does not match exactly one of local refs.
It is an error if <dst> matches more than one remote refs.
If <dst> does not match any remote ref, either
it has to start with "refs/"; <dst> is used as the destination literally in this case.
<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.
Written by Linus Torvalds <torvalds@osdl.org>
Documentation by Junio C Hamano.
Part of the git suite