'\" t
.\"     Title: git-push
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\"      Date: 06/08/2020
.\"    Manual: Git Manual
.\"    Source: Git 2.27.0.83.g0313f36c6e
.\"  Language: English
.\"
.TH "GIT\-PUSH" "1" "06/08/2020" "Git 2\&.27\&.0\&.83\&.g0313f36" "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-push \- Update remote refs along with associated objects
.SH "SYNOPSIS"
.sp
.nf
\fIgit push\fR [\-\-all | \-\-mirror | \-\-tags] [\-\-follow\-tags] [\-\-atomic] [\-n | \-\-dry\-run] [\-\-receive\-pack=<git\-receive\-pack>]
           [\-\-repo=<repository>] [\-f | \-\-force] [\-d | \-\-delete] [\-\-prune] [\-v | \-\-verbose]
           [\-u | \-\-set\-upstream] [\-o <string> | \-\-push\-option=<string>]
           [\-\-[no\-]signed|\-\-signed=(true|false|if\-asked)]
           [\-\-force\-with\-lease[=<refname>[:<expect>]]]
           [\-\-no\-verify] [<repository> [<refspec>\&...]]
.fi
.sp
.SH "DESCRIPTION"
.sp
Updates remote refs using local refs, while sending objects necessary to complete the given refs\&.
.sp
You can make interesting things happen to a repository every time you push into it, by setting up \fIhooks\fR there\&. See documentation for \fBgit-receive-pack\fR(1)\&.
.sp
When the command line does not specify where to push with the \fB<repository>\fR argument, \fBbranch\&.*\&.remote\fR configuration for the current branch is consulted to determine where to push\&. If the configuration is missing, it defaults to \fIorigin\fR\&.
.sp
When the command line does not specify what to push with \fB<refspec>\&.\&.\&.\fR arguments or \fB\-\-all\fR, \fB\-\-mirror\fR, \fB\-\-tags\fR options, the command finds the default \fB<refspec>\fR by consulting \fBremote\&.*\&.push\fR configuration, and if it is not found, honors \fBpush\&.default\fR configuration to decide what to push (See \fBgit-config\fR(1) for the meaning of \fBpush\&.default\fR)\&.
.sp
When neither the command\-line nor the configuration specify what to push, the default behavior is used, which corresponds to the \fBsimple\fR value for \fBpush\&.default\fR: the current branch is pushed to the corresponding upstream branch, but as a safety measure, the push is aborted if the upstream branch does not have the same name as the local one\&.
.SH "OPTIONS"
.PP
<repository>
.RS 4
The "remote" repository that is destination of a push operation\&. This parameter can be either a URL (see the section
GIT URLS
below) or the name of a remote (see the section
REMOTES
below)\&.
.RE
.PP
<refspec>\&...
.RS 4
Specify what destination ref to update with what source object\&. The format of a <refspec> parameter is an optional plus
\fB+\fR, followed by the source object <src>, followed by a colon
\fB:\fR, followed by the destination ref <dst>\&.
.sp
The <src> is often the name of the branch you would want to push, but it can be any arbitrary "SHA\-1 expression", such as
\fBmaster~4\fR
or
\fBHEAD\fR
(see
\fBgitrevisions\fR(7))\&.
.sp
The <dst> tells which ref on the remote side is updated with this push\&. Arbitrary expressions cannot be used here, an actual ref must be named\&. If
\fBgit push [<repository>]\fR
without any
\fB<refspec>\fR
argument is set to update some ref at the destination with
\fB<src>\fR
with
\fBremote\&.<repository>\&.push\fR
configuration variable,
\fB:<dst>\fR
part can be omitted\(emsuch a push will update a ref that
\fB<src>\fR
normally updates without any
\fB<refspec>\fR
on the command line\&. Otherwise, missing
\fB:<dst>\fR
means to update the same ref as the
\fB<src>\fR\&.
.sp
If <dst> doesn\(cqt start with
\fBrefs/\fR
(e\&.g\&.
\fBrefs/heads/master\fR) we will try to infer where in
\fBrefs/*\fR
on the destination <repository> it belongs based on the type of <src> being pushed and whether <dst> is ambiguous\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
If <dst> unambiguously refers to a ref on the <repository> remote, then push to that ref\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
If <src> resolves to a ref starting with refs/heads/ or refs/tags/, then prepend that to <dst>\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Other ambiguity resolutions might be added in the future, but for now any other cases will error out with an error indicating what we tried, and depending on the
\fBadvice\&.pushUnqualifiedRefname\fR
configuration (see
\fBgit-config\fR(1)) suggest what refs/ namespace you may have wanted to push to\&.
.RE
.sp
The object referenced by <src> is used to update the <dst> reference on the remote side\&. Whether this is allowed depends on where in
\fBrefs/*\fR
the <dst> reference lives as described in detail below, in those sections "update" means any modifications except deletes, which as noted after the next few sections are treated differently\&.
.sp
The
\fBrefs/heads/*\fR
namespace will only accept commit objects, and updates only if they can be fast\-forwarded\&.
.sp
The
\fBrefs/tags/*\fR
namespace will accept any kind of object (as commits, trees and blobs can be tagged), and any updates to them will be rejected\&.
.sp
It\(cqs possible to push any type of object to any namespace outside of
\fBrefs/{tags,heads}/*\fR\&. In the case of tags and commits, these will be treated as if they were the commits inside
\fBrefs/heads/*\fR
for the purposes of whether the update is allowed\&.
.sp
I\&.e\&. a fast\-forward of commits and tags outside
\fBrefs/{tags,heads}/*\fR
is allowed, even in cases where what\(cqs being fast\-forwarded is not a commit, but a tag object which happens to point to a new commit which is a fast\-forward of the commit the last tag (or commit) it\(cqs replacing\&. Replacing a tag with an entirely different tag is also allowed, if it points to the same commit, as well as pushing a peeled tag, i\&.e\&. pushing the commit that existing tag object points to, or a new tag object which an existing commit points to\&.
.sp
Tree and blob objects outside of
\fBrefs/{tags,heads}/*\fR
will be treated the same way as if they were inside
\fBrefs/tags/*\fR, any update of them will be rejected\&.
.sp
All of the rules described above about what\(cqs not allowed as an update can be overridden by adding an the optional leading
\fB+\fR
to a refspec (or using
\fB\-\-force\fR
command line option)\&. The only exception to this is that no amount of forcing will make the
\fBrefs/heads/*\fR
namespace accept a non\-commit object\&. Hooks and configuration can also override or amend these rules, see e\&.g\&.
\fBreceive\&.denyNonFastForwards\fR
in
\fBgit-config\fR(1)
and
\fBpre\-receive\fR
and
\fBupdate\fR
in
\fBgithooks\fR(5)\&.
.sp
Pushing an empty <src> allows you to delete the <dst> ref from the remote repository\&. Deletions are always accepted without a leading
\fB+\fR
in the refspec (or
\fB\-\-force\fR), except when forbidden by configuration or hooks\&. See
\fBreceive\&.denyDeletes\fR
in
\fBgit-config\fR(1)
and
\fBpre\-receive\fR
and
\fBupdate\fR
in
\fBgithooks\fR(5)\&.
.sp
The special refspec
\fB:\fR
(or
\fB+:\fR
to allow non\-fast\-forward updates) directs Git to push "matching" branches: for every branch that exists on the local side, the remote side is updated if a branch of the same name already exists on the remote side\&.
.sp
\fBtag <tag>\fR
means the same as
\fBrefs/tags/<tag>:refs/tags/<tag>\fR\&.
.RE
.PP
\-\-all
.RS 4
Push all branches (i\&.e\&. refs under
\fBrefs/heads/\fR); cannot be used with other <refspec>\&.
.RE
.PP
\-\-prune
.RS 4
Remove remote branches that don\(cqt have a local counterpart\&. For example a remote branch
\fBtmp\fR
will be removed if a local branch with the same name doesn\(cqt exist any more\&. This also respects refspecs, e\&.g\&.
\fBgit push \-\-prune remote refs/heads/*:refs/tmp/*\fR
would make sure that remote
\fBrefs/tmp/foo\fR
will be removed if
\fBrefs/heads/foo\fR
doesn\(cqt exist\&.
.RE
.PP
\-\-mirror
.RS 4
Instead of naming each ref to push, specifies that all refs under
\fBrefs/\fR
(which includes but is not limited to
\fBrefs/heads/\fR,
\fBrefs/remotes/\fR, and
\fBrefs/tags/\fR) be mirrored to the remote repository\&. Newly created local refs will be pushed to the remote end, locally updated refs will be force updated on the remote end, and deleted refs will be removed from the remote end\&. This is the default if the configuration option
\fBremote\&.<remote>\&.mirror\fR
is set\&.
.RE
.PP
\-n, \-\-dry\-run
.RS 4
Do everything except actually send the updates\&.
.RE
.PP
\-\-porcelain
.RS 4
Produce machine\-readable output\&. The output status line for each ref will be tab\-separated and sent to stdout instead of stderr\&. The full symbolic names of the refs will be given\&.
.RE
.PP
\-d, \-\-delete
.RS 4
All listed refs are deleted from the remote repository\&. This is the same as prefixing all refs with a colon\&.
.RE
.PP
\-\-tags
.RS 4
All refs under
\fBrefs/tags\fR
are pushed, in addition to refspecs explicitly listed on the command line\&.
.RE
.PP
\-\-follow\-tags
.RS 4
Push all the refs that would be pushed without this option, and also push annotated tags in
\fBrefs/tags\fR
that are missing from the remote but are pointing at commit\-ish that are reachable from the refs being pushed\&. This can also be specified with configuration variable
\fBpush\&.followTags\fR\&. For more information, see
\fBpush\&.followTags\fR
in
\fBgit-config\fR(1)\&.
.RE
.PP
\-\-[no\-]signed, \-\-signed=(true|false|if\-asked)
.RS 4
GPG\-sign the push request to update refs on the receiving side, to allow it to be checked by the hooks and/or be logged\&. If
\fBfalse\fR
or
\fB\-\-no\-signed\fR, no signing will be attempted\&. If
\fBtrue\fR
or
\fB\-\-signed\fR, the push will fail if the server does not support signed pushes\&. If set to
\fBif\-asked\fR, sign if and only if the server supports signed pushes\&. The push will also fail if the actual call to
\fBgpg \-\-sign\fR
fails\&. See
\fBgit-receive-pack\fR(1)
for the details on the receiving end\&.
.RE
.PP
\-\-[no\-]atomic
.RS 4
Use an atomic transaction on the remote side if available\&. Either all refs are updated, or on error, no refs are updated\&. If the server does not support atomic pushes the push will fail\&.
.RE
.PP
\-o <option>, \-\-push\-option=<option>
.RS 4
Transmit the given string to the server, which passes them to the pre\-receive as well as the post\-receive hook\&. The given string must not contain a NUL or LF character\&. When multiple
\fB\-\-push\-option=<option>\fR
are given, they are all sent to the other side in the order listed on the command line\&. When no
\fB\-\-push\-option=<option>\fR
is given from the command line, the values of configuration variable
\fBpush\&.pushOption\fR
are used instead\&.
.RE
.PP
\-\-receive\-pack=<git\-receive\-pack>, \-\-exec=<git\-receive\-pack>
.RS 4
Path to the
\fIgit\-receive\-pack\fR
program on the remote end\&. Sometimes useful when pushing to a remote repository over ssh, and you do not have the program in a directory on the default $PATH\&.
.RE
.PP
\-\-[no\-]force\-with\-lease, \-\-force\-with\-lease=<refname>, \-\-force\-with\-lease=<refname>:<expect>
.RS 4
Usually, "git push" refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it\&.
.sp
This option overrides this restriction if the current value of the remote ref is the expected value\&. "git push" fails otherwise\&.
.sp
Imagine that you have to rebase what you have already published\&. You will have to bypass the "must fast\-forward" rule in order to replace the history you originally published with the rebased history\&. If somebody else built on top of your original history while you are rebasing, the tip of the branch at the remote may advance with her commit, and blindly pushing with
\fB\-\-force\fR
will lose her work\&.
.sp
This option allows you to say that you expect the history you are updating is what you rebased and want to replace\&. If the remote ref still points at the commit you specified, you can be sure that no other people did anything to the ref\&. It is like taking a "lease" on the ref without explicitly locking it, and the remote ref is updated only if the "lease" is still valid\&.
.sp
\fB\-\-force\-with\-lease\fR
alone, without specifying the details, will protect all remote refs that are going to be updated by requiring their current value to be the same as the remote\-tracking branch we have for them\&.
.sp
\fB\-\-force\-with\-lease=<refname>\fR, without specifying the expected value, will protect the named ref (alone), if it is going to be updated, by requiring its current value to be the same as the remote\-tracking branch we have for it\&.
.sp
\fB\-\-force\-with\-lease=<refname>:<expect>\fR
will protect the named ref (alone), if it is going to be updated, by requiring its current value to be the same as the specified value
\fB<expect>\fR
(which is allowed to be different from the remote\-tracking branch we have for the refname, or we do not even have to have such a remote\-tracking branch when this form is used)\&. If
\fB<expect>\fR
is the empty string, then the named ref must not already exist\&.
.sp
Note that all forms other than
\fB\-\-force\-with\-lease=<refname>:<expect>\fR
that specifies the expected current value of the ref explicitly are still experimental and their semantics may change as we gain experience with this feature\&.
.sp
"\-\-no\-force\-with\-lease" will cancel all the previous \-\-force\-with\-lease on the command line\&.
.sp
A general note on safety: supplying this option without an expected value, i\&.e\&. as
\fB\-\-force\-with\-lease\fR
or
\fB\-\-force\-with\-lease=<refname>\fR
interacts very badly with anything that implicitly runs
\fBgit fetch\fR
on the remote to be pushed to in the background, e\&.g\&.
\fBgit fetch origin\fR
on your repository in a cronjob\&.
.sp
The protection it offers over
\fB\-\-force\fR
is ensuring that subsequent changes your work wasn\(cqt based on aren\(cqt clobbered, but this is trivially defeated if some background process is updating refs in the background\&. We don\(cqt have anything except the remote tracking info to go by as a heuristic for refs you\(cqre expected to have seen & are willing to clobber\&.
.sp
If your editor or some other system is running
\fBgit fetch\fR
in the background for you a way to mitigate this is to simply set up another remote:
.sp
.if n \{\
.RS 4
.\}
.nf
git remote add origin\-push $(git config remote\&.origin\&.url)
git fetch origin\-push
.fi
.if n \{\
.RE
.\}
.sp
Now when the background process runs
\fBgit fetch origin\fR
the references on
\fBorigin\-push\fR
won\(cqt be updated, and thus commands like:
.sp
.if n \{\
.RS 4
.\}
.nf
git push \-\-force\-with\-lease origin\-push
.fi
.if n \{\
.RE
.\}
.sp
Will fail unless you manually run
\fBgit fetch origin\-push\fR\&. This method is of course entirely defeated by something that runs
\fBgit fetch \-\-all\fR, in that case you\(cqd need to either disable it or do something more tedious like:
.sp
.if n \{\
.RS 4
.\}
.nf
git fetch              # update \(aqmaster\(aq from remote
git tag base master    # mark our base point
git rebase \-i master   # rewrite some commits
git push \-\-force\-with\-lease=master:base master:master
.fi
.if n \{\
.RE
.\}
.sp
I\&.e\&. create a
\fBbase\fR
tag for versions of the upstream code that you\(cqve seen and are willing to overwrite, then rewrite history, and finally force push changes to
\fBmaster\fR
if the remote version is still at
\fBbase\fR, regardless of what your local
\fBremotes/origin/master\fR
has been updated to in the background\&.
.RE
.PP
\-f, \-\-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\&. Also, when
\fB\-\-force\-with\-lease\fR
option is used, the command refuses to update a remote ref whose current value does not match what is expected\&.
.sp
This flag disables these checks, and can cause the remote repository to lose commits; use it with care\&.
.sp
Note that
\fB\-\-force\fR
applies to all the refs that are pushed, hence using it with
\fBpush\&.default\fR
set to
\fBmatching\fR
or with multiple push destinations configured with
\fBremote\&.*\&.push\fR
may overwrite refs other than the current branch (including local refs that are strictly behind their remote counterpart)\&. To force a push to only one branch, use a
\fB+\fR
in front of the refspec to push (e\&.g
\fBgit push origin +master\fR
to force a push to the
\fBmaster\fR
branch)\&. See the
\fB<refspec>\&.\&.\&.\fR
section above for details\&.
.RE
.PP
\-\-repo=<repository>
.RS 4
This option is equivalent to the <repository> argument\&. If both are specified, the command\-line argument takes precedence\&.
.RE
.PP
\-u, \-\-set\-upstream
.RS 4
For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument\-less
\fBgit-pull\fR(1)
and other commands\&. For more information, see
\fBbranch\&.<name>\&.merge\fR
in
\fBgit-config\fR(1)\&.
.RE
.PP
\-\-[no\-]thin
.RS 4
These options are passed to
\fBgit-send-pack\fR(1)\&. A thin transfer significantly reduces the amount of sent data when the sender and receiver share many of the same objects in common\&. The default is
\fB\-\-thin\fR\&.
.RE
.PP
\-q, \-\-quiet
.RS 4
Suppress all output, including the listing of updated refs, unless an error occurs\&. Progress is not reported to the standard error stream\&.
.RE
.PP
\-v, \-\-verbose
.RS 4
Run verbosely\&.
.RE
.PP
\-\-progress
.RS 4
Progress status is reported on the standard error stream by default when it is attached to a terminal, unless \-q is specified\&. This flag forces progress status even if the standard error stream is not directed to a terminal\&.
.RE
.PP
\-\-no\-recurse\-submodules, \-\-recurse\-submodules=check|on\-demand|only|no
.RS 4
May be used to make sure all submodule commits used by the revisions to be pushed are available on a remote\-tracking branch\&. If
\fIcheck\fR
is used Git will verify that all submodule commits that changed in the revisions to be pushed are available on at least one remote of the submodule\&. If any commits are missing the push will be aborted and exit with non\-zero status\&. If
\fIon\-demand\fR
is used all submodules that changed in the revisions to be pushed will be pushed\&. If on\-demand was not able to push all necessary revisions it will also be aborted and exit with non\-zero status\&. If
\fIonly\fR
is used all submodules will be recursively pushed while the superproject is left unpushed\&. A value of
\fIno\fR
or using
\fB\-\-no\-recurse\-submodules\fR
can be used to override the push\&.recurseSubmodules configuration variable when no submodule recursion is required\&.
.RE
.PP
\-\-[no\-]verify
.RS 4
Toggle the pre\-push hook (see
\fBgithooks\fR(5))\&. The default is \-\-verify, giving the hook a chance to prevent the push\&. With \-\-no\-verify, the hook is bypassed completely\&.
.RE
.PP
\-4, \-\-ipv4
.RS 4
Use IPv4 addresses only, ignoring IPv6 addresses\&.
.RE
.PP
\-6, \-\-ipv6
.RS 4
Use IPv6 addresses only, ignoring IPv4 addresses\&.
.RE
.SH "GIT URLS"
.sp
In general, URLs contain information about the transport protocol, the address of the remote server, and the path to the repository\&. Depending on the transport protocol, some of this information may be absent\&.
.sp
Git supports ssh, git, http, and https protocols (in addition, ftp, and ftps can be used for fetching, but this is inefficient and deprecated; do not use it)\&.
.sp
The native transport (i\&.e\&. git:// URL) does no authentication and should be used with caution on unsecured networks\&.
.sp
The following syntaxes may be used with them:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ssh://[user@]host\&.xz[:port]/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
git://host\&.xz[:port]/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
http[s]://host\&.xz[:port]/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ftp[s]://host\&.xz[:port]/path/to/repo\&.git/
.RE
.sp
An alternative scp\-like syntax may also be used with the ssh protocol:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
[user@]host\&.xz:path/to/repo\&.git/
.RE
.sp
This syntax is only recognized if there are no slashes before the first colon\&. This helps differentiate a local path that contains a colon\&. For example the local path \fBfoo:bar\fR could be specified as an absolute path or \fB\&./foo:bar\fR to avoid being misinterpreted as an ssh url\&.
.sp
The ssh and git protocols additionally support ~username expansion:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
ssh://[user@]host\&.xz[:port]/~[user]/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
git://host\&.xz[:port]/~[user]/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
[user@]host\&.xz:/~[user]/path/to/repo\&.git/
.RE
.sp
For local repositories, also supported by Git natively, the following syntaxes may be used:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
/path/to/repo\&.git/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
file:///path/to/repo\&.git/
.RE
.sp
These two syntaxes are mostly equivalent, except when cloning, when the former implies \-\-local option\&. See \fBgit-clone\fR(1) for details\&.
.sp
\fIgit clone\fR, \fIgit fetch\fR and \fIgit pull\fR, but not \fIgit push\fR, will also accept a suitable bundle file\&. See \fBgit-bundle\fR(1)\&.
.sp
When Git doesn\(cqt know how to handle a certain transport protocol, it attempts to use the \fIremote\-<transport>\fR remote helper, if one exists\&. To explicitly request a remote helper, the following syntax may be used:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
<transport>::<address>
.RE
.sp
where <address> may be a path, a server and path, or an arbitrary URL\-like string recognized by the specific remote helper being invoked\&. See \fBgitremote-helpers\fR(7) for details\&.
.sp
If there are a large number of similarly\-named remote repositories and you want to use a different format for them (such that the URLs you use will be rewritten into URLs that work), you can create a configuration section of the form:
.sp
.if n \{\
.RS 4
.\}
.nf
        [url "<actual url base>"]
                insteadOf = <other url base>
.fi
.if n \{\
.RE
.\}
.sp
.sp
For example, with this:
.sp
.if n \{\
.RS 4
.\}
.nf
        [url "git://git\&.host\&.xz/"]
                insteadOf = host\&.xz:/path/to/
                insteadOf = work:
.fi
.if n \{\
.RE
.\}
.sp
.sp
a URL like "work:repo\&.git" or like "host\&.xz:/path/to/repo\&.git" will be rewritten in any context that takes a URL to be "git://git\&.host\&.xz/repo\&.git"\&.
.sp
If you want to rewrite URLs for push only, you can create a configuration section of the form:
.sp
.if n \{\
.RS 4
.\}
.nf
        [url "<actual url base>"]
                pushInsteadOf = <other url base>
.fi
.if n \{\
.RE
.\}
.sp
.sp
For example, with this:
.sp
.if n \{\
.RS 4
.\}
.nf
        [url "ssh://example\&.org/"]
                pushInsteadOf = git://example\&.org/
.fi
.if n \{\
.RE
.\}
.sp
.sp
a URL like "git://example\&.org/path/to/repo\&.git" will be rewritten to "ssh://example\&.org/path/to/repo\&.git" for pushes, but pulls will still use the original URL\&.
.SH "REMOTES"
.sp
The name of one of the following can be used instead of a URL as \fB<repository>\fR argument:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
a remote in the Git configuration file:
\fB$GIT_DIR/config\fR,
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
a file in the
\fB$GIT_DIR/remotes\fR
directory, or
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
a file in the
\fB$GIT_DIR/branches\fR
directory\&.
.RE
.sp
All of these also allow you to omit the refspec from the command line because they each contain a refspec which git will use by default\&.
.SS "Named remote in configuration file"
.sp
You can choose to provide the name of a remote which you had previously configured using \fBgit-remote\fR(1), \fBgit-config\fR(1) or even by a manual edit to the \fB$GIT_DIR/config\fR file\&. The URL of this remote will be used to access the repository\&. The refspec of this remote will be used by default when you do not provide a refspec on the command line\&. The entry in the config file would appear like this:
.sp
.if n \{\
.RS 4
.\}
.nf
        [remote "<name>"]
                url = <url>
                pushurl = <pushurl>
                push = <refspec>
                fetch = <refspec>
.fi
.if n \{\
.RE
.\}
.sp
.sp
The \fB<pushurl>\fR is used for pushes only\&. It is optional and defaults to \fB<url>\fR\&.
.SS "Named file in \fB$GIT_DIR/remotes\fR"
.sp
You can choose to provide the name of a file in \fB$GIT_DIR/remotes\fR\&. The URL in this file will be used to access the repository\&. The refspec in this file will be used as default when you do not provide a refspec on the command line\&. This file should have the following format:
.sp
.if n \{\
.RS 4
.\}
.nf
        URL: one of the above URL format
        Push: <refspec>
        Pull: <refspec>
.fi
.if n \{\
.RE
.\}
.sp
.sp
\fBPush:\fR lines are used by \fIgit push\fR and \fBPull:\fR lines are used by \fIgit pull\fR and \fIgit fetch\fR\&. Multiple \fBPush:\fR and \fBPull:\fR lines may be specified for additional branch mappings\&.
.SS "Named file in \fB$GIT_DIR/branches\fR"
.sp
You can choose to provide the name of a file in \fB$GIT_DIR/branches\fR\&. The URL in this file will be used to access the repository\&. This file should have the following format:
.sp
.if n \{\
.RS 4
.\}
.nf
        <url>#<head>
.fi
.if n \{\
.RE
.\}
.sp
.sp
\fB<url>\fR is required; \fB#<head>\fR is optional\&.
.sp
Depending on the operation, git will use one of the following refspecs, if you don\(cqt provide one on the command line\&. \fB<branch>\fR is the name of this file in \fB$GIT_DIR/branches\fR and \fB<head>\fR defaults to \fBmaster\fR\&.
.sp
git fetch uses:
.sp
.if n \{\
.RS 4
.\}
.nf
        refs/heads/<head>:refs/heads/<branch>
.fi
.if n \{\
.RE
.\}
.sp
.sp
git push uses:
.sp
.if n \{\
.RS 4
.\}
.nf
        HEAD:refs/heads/<head>
.fi
.if n \{\
.RE
.\}
.sp
.SH "OUTPUT"
.sp
The output of "git push" depends on the transport method used; this section describes the output when pushing over the Git protocol (either locally or via ssh)\&.
.sp
The status of the push is output in tabular form, with each line representing the status of a single ref\&. Each line is of the form:
.sp
.if n \{\
.RS 4
.\}
.nf
 <flag> <summary> <from> \-> <to> (<reason>)
.fi
.if n \{\
.RE
.\}
.sp
.sp
If \-\-porcelain is used, then each line of the output is of the form:
.sp
.if n \{\
.RS 4
.\}
.nf
 <flag> \et <from>:<to> \et <summary> (<reason>)
.fi
.if n \{\
.RE
.\}
.sp
.sp
The status of up\-to\-date refs is shown only if \-\-porcelain or \-\-verbose option is used\&.
.PP
flag
.RS 4
A single character indicating the status of the ref:
.PP
(space)
.RS 4
for a successfully pushed fast\-forward;
.RE
.PP
\fB+\fR
.RS 4
for a successful forced update;
.RE
.PP
\fB\-\fR
.RS 4
for a successfully deleted ref;
.RE
.PP
\fB*\fR
.RS 4
for a successfully pushed new ref;
.RE
.PP
\fB!\fR
.RS 4
for a ref that was rejected or failed to push; and
.RE
.PP
\fB=\fR
.RS 4
for a ref that was up to date and did not need pushing\&.
.RE
.RE
.PP
summary
.RS 4
For a successfully pushed ref, the summary shows the old and new values of the ref in a form suitable for using as an argument to
\fBgit log\fR
(this is
\fB<old>\&.\&.<new>\fR
in most cases, and
\fB<old>\&.\&.\&.<new>\fR
for forced non\-fast\-forward updates)\&.
.sp
For a failed update, more details are given:
.PP
rejected
.RS 4
Git did not try to send the ref at all, typically because it is not a fast\-forward and you did not force the update\&.
.RE
.PP
remote rejected
.RS 4
The remote end refused the update\&. Usually caused by a hook on the remote side, or because the remote repository has one of the following safety options in effect:
\fBreceive\&.denyCurrentBranch\fR
(for pushes to the checked out branch),
\fBreceive\&.denyNonFastForwards\fR
(for forced non\-fast\-forward updates),
\fBreceive\&.denyDeletes\fR
or
\fBreceive\&.denyDeleteCurrent\fR\&. See
\fBgit-config\fR(1)\&.
.RE
.PP
remote failure
.RS 4
The remote end did not report the successful update of the ref, perhaps because of a temporary error on the remote side, a break in the network connection, or other transient error\&.
.RE
.RE
.PP
from
.RS 4
The name of the local ref being pushed, minus its
\fBrefs/<type>/\fR
prefix\&. In the case of deletion, the name of the local ref is omitted\&.
.RE
.PP
to
.RS 4
The name of the remote ref being updated, minus its
\fBrefs/<type>/\fR
prefix\&.
.RE
.PP
reason
.RS 4
A human\-readable explanation\&. In the case of successfully pushed refs, no explanation is needed\&. For a failed ref, the reason for failure is described\&.
.RE
.SH "NOTE ABOUT FAST\-FORWARDS"
.sp
When an update changes a branch (or more in general, a ref) that used to point at commit A to point at another commit B, it is called a fast\-forward update if and only if B is a descendant of A\&.
.sp
In a fast\-forward update from A to B, the set of commits that the original commit A built on top of is a subset of the commits the new commit B builds on top of\&. Hence, it does not lose any history\&.
.sp
In contrast, a non\-fast\-forward update will lose history\&. For example, suppose you and somebody else started at the same commit X, and you built a history leading to commit B while the other person built a history leading to commit A\&. The history looks like this:
.sp
.if n \{\
.RS 4
.\}
.nf
      B
     /
 \-\-\-X\-\-\-A
.fi
.if n \{\
.RE
.\}
.sp
.sp
Further suppose that the other person already pushed changes leading to A back to the original repository from which you two obtained the original commit X\&.
.sp
The push done by the other person updated the branch that used to point at commit X to point at commit A\&. It is a fast\-forward\&.
.sp
But if you try to push, you will attempt to update the branch (that now points at A) with commit B\&. This does \fInot\fR fast\-forward\&. If you did so, the changes introduced by commit A will be lost, because everybody will now start building on top of B\&.
.sp
The command by default does not allow an update that is not a fast\-forward to prevent such loss of history\&.
.sp
If you do not want to lose your work (history from X to B) or the work by the other person (history from X to A), you would need to first fetch the history from the repository, create a history that contains changes done by both parties, and push the result back\&.
.sp
You can perform "git pull", resolve potential conflicts, and "git push" the result\&. A "git pull" will create a merge commit C between commits A and B\&.
.sp
.if n \{\
.RS 4
.\}
.nf
      B\-\-\-C
     /   /
 \-\-\-X\-\-\-A
.fi
.if n \{\
.RE
.\}
.sp
.sp
Updating A with the resulting merge commit will fast\-forward and your push will be accepted\&.
.sp
Alternatively, you can rebase your change between X and B on top of A, with "git pull \-\-rebase", and push the result back\&. The rebase will create a new commit D that builds the change between X and B on top of A\&.
.sp
.if n \{\
.RS 4
.\}
.nf
      B   D
     /   /
 \-\-\-X\-\-\-A
.fi
.if n \{\
.RE
.\}
.sp
.sp
Again, updating A with this commit will fast\-forward and your push will be accepted\&.
.sp
There is another common situation where you may encounter non\-fast\-forward rejection when you try to push, and it is possible even when you are pushing into a repository nobody else pushes into\&. After you push commit A yourself (in the first picture in this section), replace it with "git commit \-\-amend" to produce commit B, and you try to push it out, because forgot that you have pushed A out already\&. In such a case, and only if you are certain that nobody in the meantime fetched your earlier commit A (and started building on top of it), you can run "git push \-\-force" to overwrite it\&. In other words, "git push \-\-force" is a method reserved for a case where you do mean to lose history\&.
.SH "EXAMPLES"
.PP
\fBgit push\fR
.RS 4
Works like
\fBgit push <remote>\fR, where <remote> is the current branch\(cqs remote (or
\fBorigin\fR, if no remote is configured for the current branch)\&.
.RE
.PP
\fBgit push origin\fR
.RS 4
Without additional configuration, pushes the current branch to the configured upstream (\fBremote\&.origin\&.merge\fR
configuration variable) if it has the same name as the current branch, and errors out without pushing otherwise\&.
.sp
The default behavior of this command when no <refspec> is given can be configured by setting the
\fBpush\fR
option of the remote, or the
\fBpush\&.default\fR
configuration variable\&.
.sp
For example, to default to pushing only the current branch to
\fBorigin\fR
use
\fBgit config remote\&.origin\&.push HEAD\fR\&. Any valid <refspec> (like the ones in the examples below) can be configured as the default for
\fBgit push origin\fR\&.
.RE
.PP
\fBgit push origin :\fR
.RS 4
Push "matching" branches to
\fBorigin\fR\&. See <refspec> in the
OPTIONS
section above for a description of "matching" branches\&.
.RE
.PP
\fBgit push origin master\fR
.RS 4
Find a ref that matches
\fBmaster\fR
in the source repository (most likely, it would find
\fBrefs/heads/master\fR), and update the same ref (e\&.g\&.
\fBrefs/heads/master\fR) in
\fBorigin\fR
repository with it\&. If
\fBmaster\fR
did not exist remotely, it would be created\&.
.RE
.PP
\fBgit push origin HEAD\fR
.RS 4
A handy way to push the current branch to the same name on the remote\&.
.RE
.PP
\fBgit push mothership master:satellite/master dev:satellite/dev\fR
.RS 4
Use the source ref that matches
\fBmaster\fR
(e\&.g\&.
\fBrefs/heads/master\fR) to update the ref that matches
\fBsatellite/master\fR
(most probably
\fBrefs/remotes/satellite/master\fR) in the
\fBmothership\fR
repository; do the same for
\fBdev\fR
and
\fBsatellite/dev\fR\&.
.sp
See the section describing
\fB<refspec>\&.\&.\&.\fR
above for a discussion of the matching semantics\&.
.sp
This is to emulate
\fBgit fetch\fR
run on the
\fBmothership\fR
using
\fBgit push\fR
that is run in the opposite direction in order to integrate the work done on
\fBsatellite\fR, and is often necessary when you can only make connection in one way (i\&.e\&. satellite can ssh into mothership but mothership cannot initiate connection to satellite because the latter is behind a firewall or does not run sshd)\&.
.sp
After running this
\fBgit push\fR
on the
\fBsatellite\fR
machine, you would ssh into the
\fBmothership\fR
and run
\fBgit merge\fR
there to complete the emulation of
\fBgit pull\fR
that were run on
\fBmothership\fR
to pull changes made on
\fBsatellite\fR\&.
.RE
.PP
\fBgit push origin HEAD:master\fR
.RS 4
Push the current branch to the remote ref matching
\fBmaster\fR
in the
\fBorigin\fR
repository\&. This form is convenient to push the current branch without thinking about its local name\&.
.RE
.PP
\fBgit push origin master:refs/heads/experimental\fR
.RS 4
Create the branch
\fBexperimental\fR
in the
\fBorigin\fR
repository by copying the current
\fBmaster\fR
branch\&. This form is only needed to create a new branch or tag in the remote repository when the local name and the remote name are different; otherwise, the ref name on its own will work\&.
.RE
.PP
\fBgit push origin :experimental\fR
.RS 4
Find a ref that matches
\fBexperimental\fR
in the
\fBorigin\fR
repository (e\&.g\&.
\fBrefs/heads/experimental\fR), and delete it\&.
.RE
.PP
\fBgit push origin +dev:master\fR
.RS 4
Update the origin repository\(cqs master branch with the dev branch, allowing non\-fast\-forward updates\&.
\fBThis can leave unreferenced commits dangling in the origin repository\&.\fR
Consider the following situation, where a fast\-forward is not possible:
.sp
.if n \{\
.RS 4
.\}
.nf
            o\-\-\-o\-\-\-o\-\-\-A\-\-\-B  origin/master
                     \e
                      X\-\-\-Y\-\-\-Z  dev
.fi
.if n \{\
.RE
.\}
.sp
The above command would change the origin repository to
.sp
.if n \{\
.RS 4
.\}
.nf
                      A\-\-\-B  (unnamed branch)
                     /
            o\-\-\-o\-\-\-o\-\-\-X\-\-\-Y\-\-\-Z  master
.fi
.if n \{\
.RE
.\}
.sp
Commits A and B would no longer belong to a branch with a symbolic name, and so would be unreachable\&. As such, these commits would be removed by a
\fBgit gc\fR
command on the origin repository\&.
.RE
.SH "SECURITY"
.sp
The fetch and push protocols are not designed to prevent one side from stealing data from the other repository that was not intended to be shared\&. If you have private data that you need to protect from a malicious peer, your best option is to store it in another repository\&. This applies to both clients and servers\&. In particular, namespaces on a server are not effective for read access control; you should only grant read access to a namespace to clients that you would trust with read access to the entire repository\&.
.sp
The known attack vectors are as follows:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
The victim sends "have" lines advertising the IDs of objects it has that are not explicitly intended to be shared but can be used to optimize the transfer if the peer also has them\&. The attacker chooses an object ID X to steal and sends a ref to X, but isn\(cqt required to send the content of X because the victim already has it\&. Now the victim believes that the attacker has X, and it sends the content of X back to the attacker later\&. (This attack is most straightforward for a client to perform on a server, by creating a ref to X in the namespace the client has access to and then fetching it\&. The most likely way for a server to perform it on a client is to "merge" X into a public branch and hope that the user does additional work on this branch and pushes it back to the server without noticing the merge\&.)
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
As in #1, the attacker chooses an object ID X to steal\&. The victim sends an object Y that the attacker already has, and the attacker falsely claims to have X and not Y, so the victim sends Y as a delta against X\&. The delta reveals regions of X that are similar to Y to the attacker\&.
.RE
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
