git-send-pack(1)
================

NAME
----
git-send-pack - Push objects over git protocol to another repository


SYNOPSIS
--------
'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>...]

DESCRIPTION
-----------
Usually you would want to use 'git-push', which is a
higher-level wrapper of this command, instead. See linkgit:git-push[1].

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


OPTIONS
-------
--receive-pack=<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.

--exec=<git-receive-pack>::
	Same as \--receive-pack=<git-receive-pack>.

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

--dry-run::
	Do everything except actually send the updates.

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

--verbose::
	Run verbosely.

--thin::
	Spend extra cycles to minimize the number of objects to be sent.
	Use it on slower connection.

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

<ref>...::
	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 transferred to
the remote side.  You cannot specify any '<ref>' if you use
this flag.

Without '--all' and without any '<ref>', the heads that exist
both on the local side and on the remote side are updated.

When one or more '<ref>' 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 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 'git-rev-parse' to resolve a symbolic ref
name. See linkgit:git-rev-parse[1].

 - It is an error if <src> does not match exactly one of the
   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.

Without '--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' commits from there.

With '--force', the fast forward check is disabled for all refs.

Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano.

GIT
---
Part of the linkgit:git[1] suite
