Documentation / git-push.txton commit Merge branch 'ds/sendmail' (ad00a3b)
   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 an ancestor 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-remotes.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