From c8bae7493d2f2910b57f13ded012e86bdcfb0532 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 16:47:53 +0200 Subject: Adding upstream version 1:2.39.2. Signed-off-by: Daniel Baumann --- Documentation/git-send-pack.txt | 157 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 Documentation/git-send-pack.txt (limited to 'Documentation/git-send-pack.txt') diff --git a/Documentation/git-send-pack.txt b/Documentation/git-send-pack.txt new file mode 100644 index 0000000..595b002 --- /dev/null +++ b/Documentation/git-send-pack.txt @@ -0,0 +1,157 @@ +git-send-pack(1) +================ + +NAME +---- +git-send-pack - Push objects over Git protocol to another repository + + +SYNOPSIS +-------- +[verse] +'git send-pack' [--mirror] [--dry-run] [--force] + [--receive-pack=] + [--verbose] [--thin] [--atomic] + [--[no-]signed | --signed=(true|false|if-asked)] + [:] (--all | ...) + +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=:: + 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=:: + Same as --receive-pack=. + +--all:: + Instead of explicitly specifying which refs to update, + update all heads that locally exist. + +--stdin:: + Take the list of refs from stdin, one per line. If there + are refs specified on the command line in addition to this + option, then the refs from stdin are processed after those + on the command line. ++ +If `--stateless-rpc` is specified together with this option then +the list of refs must be in packet format (pkt-line). Each ref must +be in a separate packet, and the list must end with a flush packet. + +--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. + +--atomic:: + Use an atomic transaction for updating the refs. If any of the refs + fails to update then the entire push will fail without changing any + refs. + +--[no-]signed:: +--signed=(true|false|if-asked):: + GPG-sign the push request to update refs on the receiving + side, to allow it to be checked by the hooks and/or be + logged. If `false` or `--no-signed`, no signing will be + attempted. If `true` or `--signed`, the push will fail if the + server does not support signed pushes. If set to `if-asked`, + sign if and only if the server supports signed pushes. The push + will also fail if the actual call to `gpg --sign` fails. See + linkgit:git-receive-pack[1] for the details on the receiving end. + +--push-option=:: + Pass the specified string as a push option for consumption by + hooks on the server side. If the server doesn't support push + options, error out. See linkgit:git-push[1] and + linkgit:githooks[5] for details. + +:: + A remote host to house the repository. When this + part is specified, 'git-receive-pack' is invoked via + ssh. + +:: + 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 heads that exist +both on the local side and on the remote side are updated. + +When one or more '' are specified explicitly (whether on the +command line or via `--stdin`), 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. 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 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. + +GIT +--- +Part of the linkgit:git[1] suite -- cgit v1.2.3