|
|
|
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::
|
|
|
|
Send a "thin" pack, which records objects in deltified form based
|
|
|
|
on objects not included in the pack to reduce network traffic.
|
|
|
|
|
|
|
|
<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
|