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

