Documentation/cherry-pick: describe passing more than one commit
And while at it, add an "EXAMPLES" section. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder committed
Jun 2, 2010 at 07:58 UTC
89d32d33ae562afa789a7723de8d853364101610
1 file changed
+53
-11
Documentation/git-cherry-pick.txt
+53
-11
@@ -3,24 +3,28 @@ git-cherry-pick(1)
3
4
NAME
5
----
6
-git-cherry-pick - Apply the change introduced by an existing commit
6
+git-cherry-pick - Apply the changes introduced by some existing commits
7
8
SYNOPSIS
9
--------
10
-'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>
10
+'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>...
11
12
DESCRIPTION
13
-----------
14
-Given one existing commit, apply the change the patch introduces, and record a
15
-new commit that records it. This requires your working tree to be clean (no
16
-modifications from the HEAD commit).
14
+
15
+Given one or more existing commits, apply the change each one
16
+introduces, recording a new commit for each. This requires your
17
+working tree to be clean (no modifications from the HEAD commit).
18
19
OPTIONS
20
-------
20
-<commit>::
21
- Commit to cherry-pick.
21
+<commit>...::
22
+ Commits to cherry-pick.
23
For a more complete list of ways to spell commits, see the
24
"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].
25
+ Sets of commits can be passed but no traversal is done by
26
+ default, as if the '--no-walk' option was specified, see
27
+ linkgit:git-rev-list[1].
28
29
-e::
30
--edit::
@@ -55,10 +59,10 @@ OPTIONS
59
60
-n::
61
--no-commit::
58
- Usually the command automatically creates a commit.
59
- This flag applies the change necessary to cherry-pick
60
- the named commit to your working tree and the index,
61
- but does not make the commit. In addition, when this
62
+ Usually the command automatically creates a sequence of commits.
63
+ This flag applies the changes necessary to cherry-pick
64
+ each named commit to your working tree and the index,
65
+ without making any commit. In addition, when this
66
option is used, your index does not have to match the
67
HEAD commit. The cherry-pick is done against the
68
beginning state of your index.
@@ -75,6 +79,40 @@ effect to your index in a row.
79
cherry-pick'ed commit, then a fast forward to this commit will
80
be performed.
81
82
+EXAMPLES
83
+--------
84
+git cherry-pick master::
85
+
86
+ Apply the change introduced by the commit at the tip of the
87
+ master branch and create a new commit with this change.
88
+
89
+git cherry-pick ..master::
90
+git cherry-pick ^HEAD master::
91
+
92
+ Apply the changes introduced by all commits that are ancestors
93
+ of master but not of HEAD to produce new commits.
94
+
95
+git cherry-pick master\~4 master~2::
96
+
97
+ Apply the changes introduced by the fifth and third last
98
+ commits pointed to by master and create 2 new commits with
99
+ these changes.
100
+
101
+git cherry-pick -n master~1 next::
102
+
103
+ Apply to the working tree and the index the changes introduced
104
+ by the second last commit pointed to by master and by the last
105
+ commit pointed to by next, but do not create any commit with
106
+ these changes.
107
+
108
+git cherry-pick --ff ..next::
109
+
110
+ If history is linear and HEAD is an ancestor of next, update
111
+ the working tree and advance the HEAD pointer to match next.
112
+ Otherwise, apply the changes introduced by those commits that
113
+ are in next but not HEAD to the current branch, creating a new
114
+ commit for each new change.
115
+
116
Author
117
------
118
Written by Junio C Hamano <gitster@pobox.com>
@@ -83,6 +121,10 @@ Documentation
121
--------------
122
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
123
124
+SEE ALSO
125
+--------
126
+linkgit:git-revert[1]
127
+
128
GIT
129
---
130
Part of the linkgit:git[1] suite