diff options
Diffstat (limited to 'Documentation/git-http-push.txt')
-rw-r--r-- | Documentation/git-http-push.txt | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Documentation/git-http-push.txt b/Documentation/git-http-push.txt new file mode 100644 index 000000000000..ea03a4eeb0fd --- /dev/null +++ b/Documentation/git-http-push.txt @@ -0,0 +1,97 @@ +git-http-push(1) +================ + +NAME +---- +git-http-push - Push objects over HTTP/DAV to another repository + + +SYNOPSIS +-------- +[verse] +'git http-push' [--all] [--dry-run] [--force] [--verbose] <url> <ref> [<ref>...] + +DESCRIPTION +----------- +Sends missing objects to remote repository, and updates the +remote branch. + +*NOTE*: This command is temporarily disabled if your libcurl +is older than 7.16, as the combination has been reported +not to work and sometimes corrupts repository. + +OPTIONS +------- +--all:: + Do not assume that the remote repository is complete in its + current state, and verify all objects in the entire local + ref's history exist in the remote repository. + +--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. + +--dry-run:: + Do everything except actually send the updates. + +--verbose:: + Report the list of objects being walked locally and the + list of objects successfully sent to the remote repository. + +-d:: +-D:: + Remove <ref> from remote repository. The specified branch + cannot be the remote HEAD. If -d is specified the following + other conditions must also be met: + + - Remote HEAD must resolve to an object that exists locally + - Specified branch resolves to an object that exists locally + - Specified branch is an ancestor of the remote HEAD + +<ref>...:: + The remote refs to update. + + +SPECIFYING THE REFS +------------------- + +A '<ref>' specification can be either a single pattern, or a pair +of such patterns 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. + + - 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. + +GIT +--- +Part of the linkgit:git[1] suite |