| git-send-pack(1) |
| ================ |
| |
| NAME |
| ---- |
| git-send-pack - Push missing objects packed. |
| |
| |
| SYNOPSIS |
| -------- |
| 'git-send-pack' [--all] [--force] [--exec=<git-receive-pack>] [<host>:]<directory> [<ref>...] |
| |
| DESCRIPTION |
| ----------- |
| Invokes 'git-receive-pack' on a possibly remote repository, and |
| updates it from the current repository, sending named refs. |
| |
| |
| 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. |
| |
| --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. |
| |
| <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 transfered to |
| the remote side. You cannot specify any '<ref>' if you use |
| this flag. |
| |
| Without '--all' and without any '<ref>', the refs 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. |
| |
| - 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 gitlink:git[7] suite |