X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-send-pack.txt;h=9e67f1730261a20ffa8c22b682c9207856901534;hb=5ad312bedede83f63de5e69ef5e5ddff46484eae;hp=245a7d0bdedf2b76008c7ed1df290d7318b9e480;hpb=80bd6f3064a6009cd18a4dab9ce6d29681cec4af;p=git.git diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt index 245a7d0b..9e67f173 100644 --- a/Documentation/git-send-pack.txt +++ b/Documentation/git-send-pack.txt @@ -1,20 +1,19 @@ git-send-pack(1) ================ -v0.1, July 2005 NAME ---- -git-send-pack - Push missing objects packed. +git-send-pack - Push missing objects packed SYNOPSIS -------- -'git-send-pack' [--exec=] [:] [...] +'git-send-pack' [--all] [--force] [--exec=] [:] [...] DESCRIPTION ----------- Invokes 'git-receive-pack' on a possibly remote repository, and -updates it from the current repository, sending named heads. +updates it from the current repository, sending named refs. OPTIONS @@ -25,6 +24,17 @@ OPTIONS 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. + :: A remote host to house the repository. When this part is specified, 'git-receive-pack' is invoked via @@ -33,6 +43,60 @@ OPTIONS :: The repository to update. +...: + 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 '' if you use +this flag. + +Without '--all' and without any '', the refs that exist +both on the local side and on the remote side are updated. + +When one or more '' 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 '' is just a shorthand for ':'. + +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 does not match exactly one of the + local refs. + + - It is an error if matches more than one remote refs. + + - If does not match any remote ref, either + + * it has to start with "refs/"; is used as the + destination literally in this case. + + * == and the ref that matched the must not + exist in the set of remote refs; the ref matched + locally is used as the name of the destination. + +Without '--force', the ref is stored at the remote only if + does not exist, or is a proper subset (i.e. an +ancestor) of . 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 parameter can be prefixed with a plus '+' sign +to disable the fast-forward check only on that ref. + + Author ------ Written by Linus Torvalds @@ -43,4 +107,4 @@ Documentation by Junio C Hamano. GIT --- -Part of the link:git.html[git] suite +Part of the gitlink:git[7] suite