SYNOPSIS

git-send-pack [--all] [--exec=<git-receive-pack>] [<host>:]<directory> [<head>…]

DESCRIPTION

Invokes git-receive-pack on a possibly remote repository, and updates it from the current repository, sending named heads.

OPTIONS

--exec=<git-receive-pack>

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.

--all

Instead of explicitly specifying which refs to update, update all refs that locally exist.

<host>

A remote host to house the repository. When this part is specified, git-receive-pack is invoked via ssh.

<directory>

The repository to update.

<head>…: The remote refs to update.

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 <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.

Author

Written by Linus Torvalds <torvalds@osdl.org>

Documentation

Documentation by Junio C Hamano.

GIT

Part of the git suite