GIT-HTTP-FETCH(1)
π GIT-HTTP-FETCH(1) β like, the whole git manual, but make it cute
okay so this is a page straight out of the git manual (yes, that git(1), the main-character of version control) and it's about git-http-fetch. buckle up bestie, we're downloading things over HTTP π
β¨ NAME β¨
git-http-fetch β download from a remote Git repository via HTTP π¦
πΈ SYNOPSIS πΈ
git http-fetch [-c] [-t] [-a] [-d] [-v] [-w <filename>] [--recover] [--stdin | --packfile=<hash> | <commit>] <URL>
look at all those little flags, it's giving tiny army of options π
π« DESCRIPTION π«
Downloads a remote Git repository via HTTP. that's the whole vibe. it goes and gets the stuff, over HTTP, from a remote repo. slay π«Ά
okay but here's the tea: this command always gets all objects. like, all of them, no cap. historically there were three options β -a, -c and -t β for choosing which objects to download, and they're now silently ignored π so if you're out here thinking you're being selective, you're literally not. it's fine. it's iconic. it's just not doing anything.
π OPTIONS π
commit-idβ either the hash, or the filename under[URL]/refs/, that you want to pull. pick your fighter π-a,-c,-tβ these options are ignored for historical reasons. not deprecated-with-a-warning ignored, just silently ignored. they're basically ghosts at this point π»-vβ report what is downloaded. so you can actually watch the lil downloads happen, very satisfying, highly recommend β¨-w <filename>β writes the commit-id into the specified filename under$GIT_DIR/refs/<filename>on the local end after the transfer is complete. note the "after the transfer is complete" part, she's patient πΈ--stdinβ instead of a commit id on the command line (which is not expected in this case, so don't come for her),git http-fetchexpects lines on stdin in the format:
<commit-id>['\t'<filename-as-in--w>]
like, feed her lines, she'll handle it π
--packfile=<hash>β for internal use only. instead of a commit id on the command line (which is not expected in this case),git http-fetchfetches the packfile directly at the given URL and usesindex-packto generate corresponding.idxand.keepfiles. 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 ofindex-packis printed to stdout. requires one or more--index-pack-argoptions. π₯--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. first one's the main character, the rest are the entourage π--recoverβ verify that everything reachable from target is fetched. used after an earlier fetch is interrupted. basically the "okay bestie, what did we actually manage to get" check π
ngl, the internal-use-only ones are internal-use-only for a reason β they're not your cute little user-facing flags, they're plumbing π
π§ GIT π§
part of the git(1) suite. she has siblings. lots of them. π
and that's the whole page!! π this one's from Git 2.56.0, dated 2026-09-27 β mwah, sending you off with a kiss, go fetch something pretty ππ
π¦ where this page comes from
- arch rolling: git 2.56.0-1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms