blob: 3a7d385225754d5c865ac333a5a65e71c4e7fb65 [file] [log] [blame]
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