'\" t
.\" Title: git-http-push
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 01/05/2024
.\" Manual: Git Manual
.\" Source: Git 2.43.0.381.gb435a96ce8
.\" Language: English
.\"
.TH "GIT\-HTTP\-PUSH" "1" "01/05/2024" "Git 2\&.43\&.0\&.381\&.gb435a9" "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] [ [][\&...]
.fi
.sp
.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 ][ 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
][\&...
.RS 4
The remote refs to update\&.
.RE
.SH "SPECIFYING THE REFS"
.sp
A \fI][\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\fR is just a shorthand for \fI:\fR\&.
.sp
Each pattern pair \fI:\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\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\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/"; 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
.\}
== and the ref that matched the must not exist in the set of remote refs; the ref matched locally is used as the name of the destination\&.
.RE
.RE
.sp
Without \(oq\-\-force`, the ref is stored at the remote only if does not exist, or is a proper subset (i\&.e\&. an ancestor) of \&. This check, known as "fast\-forward check", is performed to avoid accidentally overwriting the remote ref and losing other peoples\(cq commits from there\&.
.sp
With \fB\-\-force\fR, the fast\-forward check is disabled for all refs\&.
.sp
Optionally, a ][ 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
]