aboutsummaryrefslogtreecommitdiff
path: root/Documentation/git-pull.txt
blob: c65ca9a5300096d69d540657ffd963070f429874 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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.


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