Documentation / git-push.txton commit Merge branch 'sv/objfixes' (d44c782)
   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 is equivalent to
  57<ref>`:`<ref>, hence updates <ref> in the destination from <ref>
  58in the source.
  59+
  60Pushing an empty <src> allows you to delete the <dst> ref from
  61the remote repository.
  62
  63\--all::
  64        Instead of naming each ref to push, specifies that all
  65        refs be pushed.
  66
  67\--tags::
  68        All refs under `$GIT_DIR/refs/tags` are pushed, in
  69        addition to refspecs explicitly listed on the command
  70        line.
  71
  72\--receive-pack=<git-receive-pack>::
  73        Path to the 'git-receive-pack' program on the remote
  74        end.  Sometimes useful when pushing to a remote
  75        repository over ssh, and you do not have the program in
  76        a directory on the default $PATH.
  77
  78\--exec=<git-receive-pack>::
  79        Same as \--receive-pack=<git-receive-pack>.
  80
  81-f, \--force::
  82        Usually, the command refuses to update a remote ref that is
  83        not a descendant of the local ref used to overwrite it.
  84        This flag disables the check.  This can cause the
  85        remote repository to lose commits; use it with care.
  86
  87\--repo=<repo>::
  88        When no repository is specified the command defaults to
  89        "origin"; this overrides it.
  90
  91\--thin, \--no-thin::
  92        These options are passed to `git-send-pack`.  Thin
  93        transfer spends extra cycles to minimize the number of
  94        objects to be sent and meant to be used on slower connection.
  95
  96-v::
  97        Run verbosely.
  98
  99include::urls.txt[]
 100
 101Author
 102------
 103Written by Junio C Hamano <junkio@cox.net>, later rewritten in C
 104by Linus Torvalds <torvalds@osdl.org>
 105
 106Documentation
 107--------------
 108Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
 109
 110GIT
 111---
 112Part of the gitlink:git[7] suite
 113