| git-cherry-pick(1) |
| ================== |
| |
| NAME |
| ---- |
| git-cherry-pick - Apply the changes introduced by some existing commits |
| |
| SYNOPSIS |
| -------- |
| 'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>... |
| |
| DESCRIPTION |
| ----------- |
| |
| Given one or more existing commits, apply the change each one |
| introduces, recording a new commit for each. This requires your |
| working tree to be clean (no modifications from the HEAD commit). |
| |
| OPTIONS |
| ------- |
| <commit>...:: |
| Commits to cherry-pick. |
| For a more complete list of ways to spell commits, see |
| linkgit:gitrevisions[1]. |
| Sets of commits can be passed but no traversal is done by |
| default, as if the '--no-walk' option was specified, see |
| linkgit:git-rev-list[1]. |
| |
| -e:: |
| --edit:: |
| With this option, 'git cherry-pick' will let you edit the commit |
| message prior to committing. |
| |
| -x:: |
| When recording the commit, append to the original commit |
| message a note that indicates which commit this change |
| was cherry-picked from. Append the note only for cherry |
| picks without conflicts. Do not use this option if |
| you are cherry-picking from your private branch because |
| the information is useless to the recipient. If on the |
| other hand you are cherry-picking between two publicly |
| visible branches (e.g. backporting a fix to a |
| maintenance branch for an older release from a |
| development branch), adding this information can be |
| useful. |
| |
| -r:: |
| It used to be that the command defaulted to do `-x` |
| described above, and `-r` was to disable it. Now the |
| default is not to do `-x` so this option is a no-op. |
| |
| -m parent-number:: |
| --mainline parent-number:: |
| Usually you cannot cherry-pick a merge because you do not know which |
| side of the merge should be considered the mainline. This |
| option specifies the parent number (starting from 1) of |
| the mainline and allows cherry-pick to replay the change |
| relative to the specified parent. |
| |
| -n:: |
| --no-commit:: |
| Usually the command automatically creates a sequence of commits. |
| This flag applies the changes necessary to cherry-pick |
| each named commit to your working tree and the index, |
| without making any commit. In addition, when this |
| option is used, your index does not have to match the |
| HEAD commit. The cherry-pick is done against the |
| beginning state of your index. |
| + |
| This is useful when cherry-picking more than one commits' |
| effect to your index in a row. |
| |
| -s:: |
| --signoff:: |
| Add Signed-off-by line at the end of the commit message. |
| |
| --ff:: |
| If the current HEAD is the same as the parent of the |
| cherry-pick'ed commit, then a fast forward to this commit will |
| be performed. |
| |
| EXAMPLES |
| -------- |
| git cherry-pick master:: |
| |
| Apply the change introduced by the commit at the tip of the |
| master branch and create a new commit with this change. |
| |
| git cherry-pick ..master:: |
| git cherry-pick ^HEAD master:: |
| |
| Apply the changes introduced by all commits that are ancestors |
| of master but not of HEAD to produce new commits. |
| |
| git cherry-pick master\~4 master~2:: |
| |
| Apply the changes introduced by the fifth and third last |
| commits pointed to by master and create 2 new commits with |
| these changes. |
| |
| git cherry-pick -n master~1 next:: |
| |
| Apply to the working tree and the index the changes introduced |
| by the second last commit pointed to by master and by the last |
| commit pointed to by next, but do not create any commit with |
| these changes. |
| |
| git cherry-pick --ff ..next:: |
| |
| If history is linear and HEAD is an ancestor of next, update |
| the working tree and advance the HEAD pointer to match next. |
| Otherwise, apply the changes introduced by those commits that |
| are in next but not HEAD to the current branch, creating a new |
| commit for each new change. |
| |
| git rev-list --reverse master \-- README | git cherry-pick -n --stdin:: |
| |
| Apply the changes introduced by all commits on the master |
| branch that touched README to the working tree and index, |
| so the result can be inspected and made into a single new |
| commit if suitable. |
| |
| Author |
| ------ |
| Written by Junio C Hamano <gitster@pobox.com> |
| |
| Documentation |
| -------------- |
| Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. |
| |
| SEE ALSO |
| -------- |
| linkgit:git-revert[1] |
| |
| GIT |
| --- |
| Part of the linkgit:git[1] suite |