'\" t
.\" Title: git-cherry-pick
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1
.\" Date: 03/19/2016
.\" Manual: Git Manual
.\" Source: Git 1.7.10.4
.\" Language: English
.\"
.TH "GIT\-CHERRY\-PICK" "1" "03/19/2016" "Git 1\&.7\&.10\&.4" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-cherry-pick \- Apply the changes introduced by some existing commits
.SH "SYNOPSIS"
.sp
.nf
\fIgit cherry\-pick\fR [\-\-edit] [\-n] [\-m parent\-number] [\-s] [\-x] [\-\-ff] \&...
\fIgit cherry\-pick\fR \-\-continue
\fIgit cherry\-pick\fR \-\-quit
\fIgit cherry\-pick\fR \-\-abort
.fi
.sp
.SH "DESCRIPTION"
.sp
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)\&.
.sp
When it is not obvious how to apply a change, the following happens:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
The current branch and
HEAD
pointer stay at the last commit successfully made\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
The
CHERRY_PICK_HEAD
ref is set to point at the commit that introduced the change that is difficult to apply\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
Paths in which the change applied cleanly are updated both in the index file and in your working tree\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 4.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 4." 4.2
.\}
For conflicting paths, the index file records up to three versions, as described in the "TRUE MERGE" section of
\fBgit-merge\fR(1)\&. The working tree files will include a description of the conflict bracketed by the usual conflict markers
<<<<<<<
and
>>>>>>>\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 5.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 5." 4.2
.\}
No other modifications are made\&.
.RE
.sp
See \fBgit-merge\fR(1) for some hints on resolving such conflicts\&.
.SH "OPTIONS"
.PP
\&...
.RS 4
Commits to cherry\-pick\&. For a more complete list of ways to spell commits, see
\fBgitrevisions\fR(7)\&. Sets of commits can be passed but no traversal is done by default, as if the
\fI\-\-no\-walk\fR
option was specified, see
\fBgit-rev-list\fR(1)\&.
.RE
.PP
\-e, \-\-edit
.RS 4
With this option,
\fIgit cherry\-pick\fR
will let you edit the commit message prior to committing\&.
.RE
.PP
\-x
.RS 4
When recording the commit, append a line that says "(cherry picked from commit \&...)" to the original commit message in order to indicate which commit this change was cherry\-picked from\&. This is done 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\&.
.RE
.PP
\-r
.RS 4
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\&.
.RE
.PP
\-m parent\-number, \-\-mainline parent\-number
.RS 4
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\&.
.RE
.PP
\-n, \-\-no\-commit
.RS 4
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\&.
.sp
This is useful when cherry\-picking more than one commits\*(Aq effect to your index in a row\&.
.RE
.PP
\-s, \-\-signoff
.RS 4
Add Signed\-off\-by line at the end of the commit message\&.
.RE
.PP
\-\-ff
.RS 4
If the current HEAD is the same as the parent of the cherry\-pick\(cqed commit, then a fast forward to this commit will be performed\&.
.RE
.PP
\-\-strategy=
.RS 4
Use the given merge strategy\&. Should only be used once\&. See the MERGE STRATEGIES section in
\fBgit-merge\fR(1)
for details\&.
.RE
.PP
\-X