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

NAME
----
git-pull - Fetch from and merge with another repository or a local branch


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::urls.txt[]

include::merge-strategies.txt[]

EXAMPLES
--------

git pull, git pull origin::
	Update the remote-tracking branches for the repository
	you cloned from, then merge one of them into your
	current branch.  Normally the branch merged in is
	the HEAD of the remote repository, but the choice is
	determined by the branch.<name>.remote and
	branch.<name>.merge options; see gitlink:git-config[1]
	for details.

git pull origin next::
	Merge into the current branch the remote branch `next`;
	leaves a copy of `next` temporarily in FETCH_HEAD, but
	does not update any remote-tracking branches.

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

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

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::
+
------------------------------------------------
$ git checkout master
$ git fetch origin +pu:pu maint:tmp
$ git pull . tmp
------------------------------------------------
+
This updates (or creates, as necessary) branches `pu` and `tmp`
in the local repository by fetching from the branches
(respectively) `pu` and `maint` from the remote repository.
+
The `pu` branch will be updated even if it is does not
fast-forward; the others will not be.
+
The final command then merges the newly fetched `tmp` into master.


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], gitlink:git-config[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

