Documentation / git-pull.txton commit Update howto using-topic-branches (f37d0cc)
   1git-pull(1)
   2===========
   3
   4NAME
   5----
   6git-pull - Pull and merge from another repository.
   7
   8
   9SYNOPSIS
  10--------
  11'git-pull' <options> <repository> <refspec>...
  12
  13
  14DESCRIPTION
  15-----------
  16Runs `git-fetch` with the given parameters, and calls `git-merge`
  17to merge the retrieved head(s) into the current branch.
  18
  19Note that you can use `.` (current directory) as the
  20<repository> to pull from the local repository -- this is useful
  21when merging local branches into the current branch.
  22
  23
  24OPTIONS
  25-------
  26include::merge-options.txt[]
  27
  28include::fetch-options.txt[]
  29
  30include::pull-fetch-param.txt[]
  31
  32include::merge-strategies.txt[]
  33
  34
  35EXAMPLES
  36--------
  37
  38git pull, git pull origin::
  39        Fetch the default head from the repository you cloned
  40        from and merge it into your current branch.
  41
  42git pull -s ours . obsolete::
  43        Merge local branch `obsolete` into the current branch,
  44        using `ours` merge strategy.
  45
  46git pull . fixes enhancements::
  47        Bundle local branch `fixes` and `enhancements` on top of
  48        the current branch, making an Octopus merge.
  49
  50git pull --no-commit . maint::
  51        Merge local branch `maint` into the current branch, but
  52        do not make a commit automatically.  This can be used
  53        when you want to include further changes to the merge,
  54        or want to write your own merge commit message.
  55+
  56You should refrain from abusing this option to sneak substantial
  57changes into a merge commit.  Small fixups like bumping
  58release/version name would be acceptable.
  59
  60Command line pull of multiple branches from one repository::
  61+
  62------------------------------------------------
  63$ cat .git/remotes/origin
  64URL: git://git.kernel.org/pub/scm/git/git.git
  65Pull: master:origin
  66
  67$ git checkout master
  68$ git fetch origin master:origin +pu:pu maint:maint
  69$ git pull . origin
  70------------------------------------------------
  71+
  72Here, a typical `.git/remotes/origin` file from a
  73`git-clone` operation is used in combination with
  74command line options to `git-fetch` to first update
  75multiple branches of the local repository and then
  76to merge the remote `origin` branch into the local
  77`master` branch.  The local `pu` branch is updated
  78even if it does not result in a fast forward update.
  79Here, the pull can obtain its objects from the local
  80repository using `.`, as the previous `git-fetch` is
  81known to have already obtained and made available
  82all the necessary objects.
  83
  84
  85Pull of multiple branches from one repository using `.git/remotes` file::
  86+
  87------------------------------------------------
  88$ cat .git/remotes/origin
  89URL: git://git.kernel.org/pub/scm/git/git.git
  90Pull: master:origin
  91Pull: +pu:pu
  92Pull: maint:maint
  93
  94$ git checkout master
  95$ git pull origin
  96------------------------------------------------
  97+
  98Here, a typical `.git/remotes/origin` file from a
  99`git-clone` operation has been hand-modified to include
 100the branch-mapping of additional remote and local
 101heads directly.  A single `git-pull` operation while
 102in the `master` branch will fetch multiple heads and
 103merge the remote `origin` head into the current,
 104local `master` branch.
 105
 106
 107SEE ALSO
 108--------
 109gitlink:git-fetch[1], gitlink:git-merge[1]
 110
 111
 112Author
 113------
 114Written by Linus Torvalds <torvalds@osdl.org>
 115and Junio C Hamano <junkio@cox.net>
 116
 117Documentation
 118--------------
 119Documentation by Jon Loeliger,
 120David Greaves,
 121Junio C Hamano and the git-list <git@vger.kernel.org>.
 122
 123GIT
 124---
 125Part of the gitlink:git[7] suite
 126