mirror of
https://github.com/git/git.git
synced 2024-12-11 19:03:50 +08:00
f8edeaa05d
It seems a little silly to do a reachabilty check in the case where we trust the user to access absolutely everything in the repository. Also, it's racy in a distributed system -- perhaps one server advertises a ref, but another has since had a force-push to that ref, and perhaps the two HTTP requests end up directed to these different servers. Signed-off-by: David Turner <dturner@twosigma.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
133 lines
4.0 KiB
Plaintext
133 lines
4.0 KiB
Plaintext
git-fetch-pack(1)
|
|
=================
|
|
|
|
NAME
|
|
----
|
|
git-fetch-pack - Receive missing objects from another repository
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]
|
|
[--upload-pack=<git-upload-pack>]
|
|
[--depth=<n>] [--no-progress]
|
|
[-v] <repository> [<refs>...]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
Usually you would want to use 'git fetch', which is a
|
|
higher level wrapper of this command, instead.
|
|
|
|
Invokes 'git-upload-pack' on a possibly remote repository
|
|
and asks it to send objects missing from this repository, to
|
|
update the named heads. The list of commits available locally
|
|
is found out by scanning the local refs/ hierarchy and sent to
|
|
'git-upload-pack' running on the other end.
|
|
|
|
This command degenerates to download everything to complete the
|
|
asked refs from the remote side when the local side does not
|
|
have a common ancestor commit.
|
|
|
|
|
|
OPTIONS
|
|
-------
|
|
--all::
|
|
Fetch all remote refs.
|
|
|
|
--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.
|
|
|
|
-q::
|
|
--quiet::
|
|
Pass `-q` flag to 'git unpack-objects'; this makes the
|
|
cloning process less verbose.
|
|
|
|
-k::
|
|
--keep::
|
|
Do not invoke 'git unpack-objects' on received data, but
|
|
create a single packfile out of it instead, and store it
|
|
in the object database. If provided twice then the pack is
|
|
locked against repacking.
|
|
|
|
--thin::
|
|
Fetch a "thin" pack, which records objects in deltified form based
|
|
on objects not included in the pack to reduce network traffic.
|
|
|
|
--include-tag::
|
|
If the remote side supports it, annotated tags objects will
|
|
be downloaded on the same connection as the other objects if
|
|
the object the tag references is downloaded. The caller must
|
|
otherwise determine the tags this option made available.
|
|
|
|
--upload-pack=<git-upload-pack>::
|
|
Use this to specify the path to 'git-upload-pack' on the
|
|
remote side, if is not found on your $PATH.
|
|
Installations of sshd ignores the user's environment
|
|
setup scripts for login shells (e.g. .bash_profile) and
|
|
your privately installed git may not be found on the system
|
|
default $PATH. Another workaround suggested is to set
|
|
up your $PATH in ".bashrc", but this flag is for people
|
|
who do not want to pay the overhead for non-interactive
|
|
shells by having a lean .bashrc file (they set most of
|
|
the things up in .bash_profile).
|
|
|
|
--exec=<git-upload-pack>::
|
|
Same as --upload-pack=<git-upload-pack>.
|
|
|
|
--depth=<n>::
|
|
Limit fetching to ancestor-chains not longer than n.
|
|
'git-upload-pack' treats the special depth 2147483647 as
|
|
infinite even if there is an ancestor-chain that long.
|
|
|
|
--shallow-since=<date>::
|
|
Deepen or shorten the history of a shallow'repository to
|
|
include all reachable commits after <date>.
|
|
|
|
--shallow-exclude=<revision>::
|
|
Deepen or shorten the history of a shallow repository to
|
|
exclude commits reachable from a specified remote branch or tag.
|
|
This option can be specified multiple times.
|
|
|
|
--deepen-relative::
|
|
Argument --depth specifies the number of commits from the
|
|
current shallow boundary instead of from the tip of each
|
|
remote branch history.
|
|
|
|
--no-progress::
|
|
Do not show the progress.
|
|
|
|
--check-self-contained-and-connected::
|
|
Output "connectivity-ok" if the received pack is
|
|
self-contained and connected.
|
|
|
|
-v::
|
|
Run verbosely.
|
|
|
|
<repository>::
|
|
The URL to the remote repository.
|
|
|
|
<refs>...::
|
|
The remote heads to update from. This is relative to
|
|
$GIT_DIR (e.g. "HEAD", "refs/heads/master"). When
|
|
unspecified, update from all heads the remote side has.
|
|
+
|
|
If the remote has enabled the options `uploadpack.allowTipSHA1InWant`,
|
|
`uploadpack.allowReachableSHA1InWant`, or `uploadpack.allowAnySHA1InWant`,
|
|
they may alternatively be 40-hex sha1s present on the remote.
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-fetch[1]
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|