Documentation / git-push.txton commit Merge branch 'maint' (68fb465)
   1git-push(1)
   2===========
   3
   4NAME
   5----
   6git-push - Update remote refs along with associated objects
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git-push' [--all] [--tags] [--receive-pack=<git-receive-pack>]
  13           [--repo=all] [-f | --force] [-v] [<repository> <refspec>...]
  14
  15DESCRIPTION
  16-----------
  17
  18Updates remote refs using local refs, while sending objects
  19necessary to complete the given refs.
  20
  21You can make interesting things happen to a repository
  22every time you push into it, by setting up 'hooks' there.  See
  23documentation for gitlink:git-receive-pack[1].
  24
  25
  26OPTIONS
  27-------
  28<repository>::
  29        The "remote" repository that is destination of a push
  30        operation.  See the section <<URLS,GIT URLS>> below.
  31
  32<refspec>::
  33        The canonical format of a <refspec> parameter is
  34        `+?<src>:<dst>`; that is, an optional plus `+`, followed
  35        by the source ref, followed by a colon `:`, followed by
  36        the destination ref.
  37+
  38The <src> side can be an
  39arbitrary "SHA1 expression" that can be used as an
  40argument to `git-cat-file -t`.  E.g. `master~4` (push
  41four parents before the current master head).
  42+
  43The local ref that matches <src> is used
  44to fast forward the remote ref that matches <dst>.  If
  45the optional plus `+` is used, the remote ref is updated
  46even if it does not result in a fast forward update.
  47+
  48Note: If no explicit refspec is found, (that is neither
  49on the command line nor in any Push line of the
  50corresponding remotes file---see below), then all the
  51refs that exist both on the local side and on the remote
  52side are updated.
  53+
  54`tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
  55+
  56A parameter <ref> without a colon pushes the <ref> from the source
  57repository to the destination repository under the same name.
  58+
  59Pushing an empty <src> allows you to delete the <dst> ref from
  60the remote repository.
  61
  62\--all::
  63        Instead of naming each ref to push, specifies that all
  64        refs be pushed.
  65
  66\--tags::
  67        All refs under `$GIT_DIR/refs/tags` are pushed, in
  68        addition to refspecs explicitly listed on the command
  69        line.
  70
  71\--receive-pack=<git-receive-pack>::
  72        Path to the 'git-receive-pack' program on the remote
  73        end.  Sometimes useful when pushing to a remote
  74        repository over ssh, and you do not have the program in
  75        a directory on the default $PATH.
  76
  77\--exec=<git-receive-pack>::
  78        Same as \--receive-pack=<git-receive-pack>.
  79
  80-f, \--force::
  81        Usually, the command refuses to update a remote ref that is
  82        not a descendant of the local ref used to overwrite it.
  83        This flag disables the check.  This can cause the
  84        remote repository to lose commits; use it with care.
  85
  86\--repo=<repo>::
  87        When no repository is specified the command defaults to
  88        "origin"; this overrides it.
  89
  90\--thin, \--no-thin::
  91        These options are passed to `git-send-pack`.  Thin
  92        transfer spends extra cycles to minimize the number of
  93        objects to be sent and meant to be used on slower connection.
  94
  95-v::
  96        Run verbosely.
  97
  98include::urls.txt[]
  99
 100
 101Examples
 102--------
 103
 104git push origin master::
 105        Find a ref that matches `master` in the source repository
 106        (most likely, it would find `refs/heads/master`), and update
 107        the same ref (e.g. `refs/heads/master`) in `origin` repository
 108        with it.
 109
 110git push origin :experimental::
 111        Find a ref that matches `experimental` in the `origin` repository
 112        (e.g. `refs/heads/experimental`), and delete it.
 113
 114git push origin master:satellite/master::
 115        Find a ref that matches `master` in the source repository
 116        (most likely, it would find `refs/heads/master`), and update
 117        the ref that matches `satellite/master` (most likely, it would
 118        be `refs/remotes/satellite/master`) in `origin` repository with it.
 119
 120Author
 121------
 122Written by Junio C Hamano <junkio@cox.net>, later rewritten in C
 123by Linus Torvalds <torvalds@osdl.org>
 124
 125Documentation
 126--------------
 127Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
 128
 129GIT
 130---
 131Part of the gitlink:git[7] suite