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.

--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.

SEE ALSO
--------
linkgit:git-fetch[1]

GIT
---
Part of the linkgit:git[1] suite
