]>
Commit | Line | Data |
---|---|---|
215a7ad1 JH |
1 | git-cherry-pick(1) |
2 | ================== | |
de2b82c6 JH |
3 | |
4 | NAME | |
5 | ---- | |
89d32d33 | 6 | git-cherry-pick - Apply the changes introduced by some existing commits |
de2b82c6 JH |
7 | |
8 | SYNOPSIS | |
9 | -------- | |
89d32d33 | 10 | 'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>... |
de2b82c6 JH |
11 | |
12 | DESCRIPTION | |
13 | ----------- | |
89d32d33 CC |
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). | |
de2b82c6 JH |
18 | |
19 | OPTIONS | |
20 | ------- | |
89d32d33 CC |
21 | <commit>...:: |
22 | Commits to cherry-pick. | |
f028cdae MG |
23 | For a more complete list of ways to spell commits, see |
24 | linkgit:gitrevisions[1]. | |
89d32d33 CC |
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]. | |
de2b82c6 | 28 | |
3240240f SB |
29 | -e:: |
30 | --edit:: | |
0b444cdb | 31 | With this option, 'git cherry-pick' will let you edit the commit |
233808db | 32 | message prior to committing. |
8bf14d6e | 33 | |
abd6970a | 34 | -x:: |
dd8175f8 RW |
35 | When recording the commit, append to the original commit |
36 | message a note that indicates which commit this change | |
37 | was cherry-picked from. Append the note only for cherry | |
38 | picks without conflicts. Do not use this option if | |
39 | you are cherry-picking from your private branch because | |
40 | the information is useless to the recipient. If on the | |
abd6970a JH |
41 | other hand you are cherry-picking between two publicly |
42 | visible branches (e.g. backporting a fix to a | |
43 | maintenance branch for an older release from a | |
44 | development branch), adding this information can be | |
45 | useful. | |
46 | ||
6b04600a | 47 | -r:: |
abd6970a JH |
48 | It used to be that the command defaulted to do `-x` |
49 | described above, and `-r` was to disable it. Now the | |
50 | default is not to do `-x` so this option is a no-op. | |
de2b82c6 | 51 | |
3240240f SB |
52 | -m parent-number:: |
53 | --mainline parent-number:: | |
84989bd8 | 54 | Usually you cannot cherry-pick a merge because you do not know which |
7791ecbc JH |
55 | side of the merge should be considered the mainline. This |
56 | option specifies the parent number (starting from 1) of | |
57 | the mainline and allows cherry-pick to replay the change | |
58 | relative to the specified parent. | |
59 | ||
3240240f SB |
60 | -n:: |
61 | --no-commit:: | |
89d32d33 CC |
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 | |
37a7744f BD |
66 | option is used, your index does not have to match the |
67 | HEAD commit. The cherry-pick is done against the | |
8bd867ee | 68 | beginning state of your index. |
df8baa42 JF |
69 | + |
70 | This is useful when cherry-picking more than one commits' | |
8bd867ee | 71 | effect to your index in a row. |
de2b82c6 | 72 | |
3240240f SB |
73 | -s:: |
74 | --signoff:: | |
cfd9c277 DM |
75 | Add Signed-off-by line at the end of the commit message. |
76 | ||
ab7e63e8 CC |
77 | --ff:: |
78 | If the current HEAD is the same as the parent of the | |
79 | cherry-pick'ed commit, then a fast forward to this commit will | |
80 | be performed. | |
de2b82c6 | 81 | |
89d32d33 CC |
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 | ||
f873a273 CC |
116 | git rev-list --reverse master \-- README | git cherry-pick -n --stdin:: |
117 | ||
118 | Apply the changes introduced by all commits on the master | |
119 | branch that touched README to the working tree and index, | |
120 | so the result can be inspected and made into a single new | |
121 | commit if suitable. | |
122 | ||
de2b82c6 JH |
123 | Author |
124 | ------ | |
59eb68aa | 125 | Written by Junio C Hamano <gitster@pobox.com> |
de2b82c6 JH |
126 | |
127 | Documentation | |
128 | -------------- | |
129 | Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. | |
130 | ||
89d32d33 CC |
131 | SEE ALSO |
132 | -------- | |
133 | linkgit:git-revert[1] | |
134 | ||
de2b82c6 JH |
135 | GIT |
136 | --- | |
9e1f0a85 | 137 | Part of the linkgit:git[1] suite |