git-pull(1)
===========

NAME
----
git-pull - Pull and merge from another repository.


SYNOPSIS
--------
'git-pull' <options> <repository> <refspec>...


DESCRIPTION
-----------
Runs `git-fetch` with the given parameters, and calls `git-merge`
to merge the retrieved head(s) into the current branch.

Note that you can use `.` (current directory) as the
<repository> to pull from the local repository -- this is useful
when merging local branches into the current branch.


OPTIONS
-------
include::merge-options.txt[]

include::fetch-options.txt[]

include::pull-fetch-param.txt[]

include::merge-strategies.txt[]


EXAMPLES
--------

git pull, git pull origin::
	Fetch the default head from the repository you cloned
	from and merge it into your current branch.

git pull -s ours . obsolete::
	Merge local branch `obsolete` into the current branch,
	using `ours` merge strategy.

git pull . fixes enhancements::
	Bundle local branch `fixes` and `enhancements` on top of
	the current branch, making an Octopus merge.

git pull --no-commit . maint::
	Merge local branch `maint` into the current branch, but
	do not make a commit automatically.  This can be used
	when you want to include further changes to the merge,
	or want to write your own merge commit message.
+
You should refrain from abusing this option to sneak substantial
changes into a merge commit.  Small fixups like bumping
release/version name would be acceptable.

Command line pull of multiple branches from one repository::
+
------------------------------------------------
$ cat .git/remotes/origin
URL: git://git.kernel.org/pub/scm/git/git.git
Pull: master:origin

$ git checkout master
$ git fetch origin master:origin +pu:pu maint:maint
$ git pull . origin
------------------------------------------------
+
Here, a typical `.git/remotes/origin` file from a
`git-clone` operation is used in combination with
command line options to `git-fetch` to first update
multiple branches of the local repository and then
to merge the remote `origin` branch into the local
`master` branch.  The local `pu` branch is updated
even if it does not result in a fast forward update.
Here, the pull can obtain its objects from the local
repository using `.`, as the previous `git-fetch` is
known to have already obtained and made available
all the necessary objects.


Pull of multiple branches from one repository using `.git/remotes` file::
+
------------------------------------------------
$ cat .git/remotes/origin
URL: git://git.kernel.org/pub/scm/git/git.git
Pull: master:origin
Pull: +pu:pu
Pull: maint:maint

$ git checkout master
$ git pull origin
------------------------------------------------
+
Here, a typical `.git/remotes/origin` file from a
`git-clone` operation has been hand-modified to include
the branch-mapping of additional remote and local
heads directly.  A single `git-pull` operation while
in the `master` branch will fetch multiple heads and
merge the remote `origin` head into the current,
local `master` branch.


If you tried a pull which resulted in a complex conflicts and
would want to start over, you can recover with
gitlink:git-reset[1].


SEE ALSO
--------
gitlink:git-fetch[1], gitlink:git-merge[1]


Author
------
Written by Linus Torvalds <torvalds@osdl.org>
and Junio C Hamano <junkio@cox.net>

Documentation
--------------
Documentation by Jon Loeliger,
David Greaves,
Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

