git-clone-pack(1)
=================

NAME
----
git-clone-pack - Clones a repository by receiving packed objects


SYNOPSIS
--------
'git-clone-pack' [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...]

DESCRIPTION
-----------
Clones a repository into the current repository by invoking
'git-upload-pack', possibly on the remote host via ssh, in
the named repository, and stores the sent pack in the local
repository.

OPTIONS
-------
--exec=<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 ignore 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).

<host>::
	A remote host that houses the repository.  When this
	part is specified, 'git-upload-pack' is invoked via
	ssh.

<directory>::
	The repository to sync from.

<head>...::
	The heads to update.  This is relative to $GIT_DIR
	(e.g. "HEAD", "refs/heads/master").  When unspecified,
	all heads are updated to match the remote repository.
+
Usually all the refs from existing repository are stored
under the same name in the new repository.  Giving explicit
<head> arguments instead writes the object names and refs to
the standard output, just like get-fetch-pack does.

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano.


GIT
---
Part of the gitlink:git[7] suite

