GIT-HTTP-PUSH(1)
π
GIT-HTTP-PUSH(1) β like, the git-http-push manual, bestie
okay so you found the git-http-push page and you're like "what is this" β don't worry, i gotchu. this is the git manual's very own push-objects-over-HTTP/DAV situation, and we're gonna read it together. grab a snack. π
β¨ NAME β¨
git-http-push β push objects over HTTP/DAV to another repository. yeah. that's the whole vibe. π¦
πΈ SYNOPSIS πΈ
git http-push [--all] [--dry-run] [--force] [--verbose] <URL> <ref> [<ref>...]
like, that's the shape of it. don't freak out, we'll go through every single flag, promise. π«Ά
π DESCRIPTION π
So what does it actually do? It sends the missing objects over to the remote repository, and then it updates the remote branch. that's it. that's the main character energy. β¨
β οΈ NOTE, and this one's important: this command is temporarily disabled if your libcurl is older than 7.16, because that combination has been reported not to work and sometimes corrupts the repository. π not a vibe. please check your libcurl, i am begging.
π OPTIONS π
every single one, no skips, no cap:
--allβ don't just assume the remote repo is complete in its current state. instead, verify that all the objects in the entire local ref's history actually exist on the remote. thorough queen behavior. π--forceβ normally the command refuses to update a remote ref if it's not an ancestor of the local ref you're using to overwrite it. this flag kills that check. which meansβ¦ the remote repository can lose commits. so use it with care, bestie, i'm serious. π--dry-runβ do literally everything except actually sending the updates. it's giving rehearsal. π--verboseβ report the list of objects being walked locally, plus the list of objects successfully sent to the remote repository. nosy and we love that for us. π-d,-Dβ remove<ref>from the remote repository. the specified branch cannot be the remoteHEAD. and if-dis specified, these other conditions must also be met:- Remote
HEADmust resolve to an object that exists locally - Specified branch resolves to an object that exists locally
- Specified branch is an ancestor of the remote
HEAD
- Remote
<ref>...β the remote refs to update. that's the list, babes. β
π¦ SPECIFYING THE REFS π¦
okay this part is lowkey the most fun, let's get into it.
A <ref> specification can be either a single pattern, or a pair of such patterns separated by a colon ":" β which, iykyk, means a ref name cannot have a colon in it. and a single pattern <name> is just a shorthand for <name>:<name>. cute, right? π
Each pattern pair <src>:<dst> has two sides: the source side (before the colon) and the destination side (after the colon). The ref to be pushed is determined by finding a match that matches the source side, and where it gets pushed is determined by the destination side. slay.
- It is an error if
<src>does not match exactly one of the local refs. one. exactly one. not zero, not two. π - If
<dst>does not match any remote ref, then either:- it has to start with
"refs/"β and in that case<dst>is used as the destination literally <src>==<dst>and the ref that matched the<src>must not exist in the set of remote refs β then the ref matched<src>locally is used as the name of the destination
- it has to start with
Without --force, the <src> ref is stored at the remote only if <dst> does not exist, or <dst> is a proper subset (i.e. an ancestor) of <src>. this check is known as the "fast-forward check", and it exists to avoid accidentally overwriting the remote ref and losing other people's commits from there. we respect other people's commits in this house. π«Ά
With --force, the fast-forward check is disabled for all refs. all of them. π«¨
Optionally, a <ref> parameter can be prefixed with a plus + sign to disable the fast-forward check only on that ref. surgical. targeted. iconic. π―
π GIT π
Part of the git(1) suite. obviously. π
and that's the whole page, bestie β you ate that. πβ¨ this was Git 2.56.0 from 2026-09-27, and i'm blowing you a little kiss goodbye π«Άπ see you in the next manpage!! π§
π¦ 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