'\" t
.\"     Title: git-http-push
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-11-02
.\"    Manual: Git Manual
.\"    Source: Git 2.52.0.rc0
.\"  Language: English
.\"
.TH "GIT\-HTTP\-PUSH" "1" "2025-11-02" "Git 2\&.52\&.0\&.rc0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-http-push \- Push objects over HTTP/DAV to another repository
.SH "SYNOPSIS"
.sp
.nf
\fIgit http\-push\fR [\-\-all] [\-\-dry\-run] [\-\-force] [\-\-verbose] <URL> <ref> [<ref>\&...\:]
.fi
.SH "DESCRIPTION"
.sp
Sends missing objects to the remote repository, and updates the remote branch\&.
.sp
\fBNOTE\fR: This command is temporarily disabled if your libcurl is older than 7\&.16, as the combination has been reported not to work and sometimes corrupts the repository\&.
.SH "OPTIONS"
.PP
\-\-all
.RS 4
Do not assume that the remote repository is complete in its current state, and verify all objects in the entire local ref\(cqs history exist in the remote repository\&.
.RE
.PP
\-\-force
.RS 4
Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it\&. This flag disables the check\&. What this means is that the remote repository can lose commits; use it with care\&.
.RE
.PP
\-\-dry\-run
.RS 4
Do everything except actually send the updates\&.
.RE
.PP
\-\-verbose
.RS 4
Report the list of objects being walked locally and the list of objects successfully sent to the remote repository\&.
.RE
.PP
\-d, \-D
.RS 4
Remove <ref> from remote repository\&. The specified branch cannot be the remote HEAD\&. If \-d is specified, the following other conditions must also be met:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Remote HEAD must resolve to an object that exists locally
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Specified branch resolves to an object that exists locally
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Specified branch is an ancestor of the remote HEAD
.RE
.RE
.PP
<ref>\&...\:
.RS 4
The remote refs to update\&.
.RE
.SH "SPECIFYING THE REFS"
.sp
A \fI<ref>\fR specification can be either a single pattern, or a pair of such patterns separated by a colon ":" (this means that a ref name cannot have a colon in it)\&. A single pattern \fI<name>\fR is just a shorthand for \fI<name>:<name>\fR\&.
.sp
Each pattern pair \fI<src>:<dst>\fR consists of 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 is pushed is determined by using the destination side\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It is an error if
\fI<src>\fR
does not match exactly one of the local refs\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
If
\fI<dst>\fR
does not match any remote ref, either
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
it has to start with "refs/"; <dst> is used as the destination literally in this case\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
<src> == <dst> and the ref that matched the <src> must not exist in the set of remote refs; the ref matched <src> locally is used as the name of the destination\&.
.RE
.RE
.sp
Without \fB\-\-force\fR, 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, known as "fast\-forward check", is performed to avoid accidentally overwriting the remote ref and losing other peoples\*(Aq commits from there\&.
.sp
With \fB\-\-force\fR, the fast\-forward check is disabled for all refs\&.
.sp
Optionally, a <ref> parameter can be prefixed with a plus \fI+\fR sign to disable the fast\-forward check only on that ref\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
