git-http-fetch(1)
=================

NAME
----
git-http-fetch - Download from a remote Git repository via HTTP


SYNOPSIS
--------
[verse]
'git http-fetch' [-c] [-t] [-a] [-d] [-v] [-w <filename>] [--recover] [--stdin | --packfile=<hash> | <commit>] <URL>

DESCRIPTION
-----------
Downloads a remote Git repository via HTTP.

This command always gets all objects. Historically, there were three options
`-a`, `-c` and `-t` for choosing which objects to download. They are now
silently ignored.

OPTIONS
-------
commit-id::
        Either the hash or the filename under [URL]/refs/ to
        pull.

-a::
-c::
-t::
	These options are ignored for historical reasons.

-v::
	Report what is downloaded.

-w <filename>::
	Writes the commit-id into the specified filename under $GIT_DIR/refs/<filename> on
        the local end after the transfer is complete.

--stdin::
	Instead of a commit id on the command line (which is not expected in this
	case), 'git http-fetch' expects lines on stdin in the format

		<commit-id>['\t'<filename-as-in--w>]

--packfile=<hash>::
	For internal use only. Instead of a commit id on the command
	line (which is not expected in
	this case), 'git http-fetch' fetches the packfile directly at the given
	URL and uses index-pack to generate corresponding .idx and .keep files.
	The hash is used to determine the name of the temporary file. It need
	not be the pack hash, but it must uniquely identify the pack contents
	for resumption. The output of index-pack is printed to stdout. Requires
	one or more --index-pack-arg options.

--index-pack-arg=<arg>::
	For internal use only. The first instance specifies the command run on
	the contents of the downloaded pack. Subsequent instances specify its
	arguments.

--recover::
	Verify that everything reachable from target is fetched.  Used after
	an earlier fetch is interrupted.

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