GIT-HTTP-FETCH(1) Git Manual GIT-HTTP-FETCH(1)

# [NAME](#NAME)

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

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#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](#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 &lt;filename&gt;

Writes the commit-id into the specified filename under $GIT\_DIR/refs/&lt;filename&gt; 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=&lt;hash&gt;

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 and is arbitrary. The output of index-pack is printed to stdout. Requires --index-pack-args.

--index-pack-args=&lt;args&gt;

For internal use only. The command to run on the contents of the downloaded pack. Arguments are URL-encoded separated by spaces.

--recover

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

# [GIT](#GIT)

Part of the [**git**(1)](/man/os/git/git.1) suite

2026-06-29 Git 2.55.0

---

Document: git-http-fetch(1) from git 2.55.0-r9 (Chainguard OS)
Source: https://kernel.googlesource.com/pub/scm/git/git.git
