GIT-FETCH-PACK(1) Git Manual GIT-FETCH-PACK(1)
NAME
git-fetch-pack - Receive missing objects from another repository
SYNOPSIS
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 it 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=<ref>
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.
--refetch
Skips negotiating commits with the server in order to fetch all
matching objects. Use to reapply a new partial clone blob/tree
filter.
--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
git-fetch(1)GIT
Part of the
git(1) suite
Git 2.48.1 2025-01-13 GIT-FETCH-PACK(1)