Skip to content Skip to sidebar Skip to footer

Can't Cherry Pick (error)

I'm trying to cherry-pick a commit from CyanogenMod Github and having issue, here's more info: Commit to cherry-pick: https://github.com/CyanogenMod/android_device_lge_bullhead/co

Solution 1:

When cherry-picking a merge commit, you need to specify the mainline. The documentation:

-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.

Consider the following commit log:

B - C
  /     \
A--D-E-F-G

Now, if you tell git to cherry-pick G, you are telling it: "Take the changes that commit G introduces". But that is ambiguous - in relation to commit C, G introduces changes made in D, E, and F. In relation to commit F, it introduces changes B and C.

To overcome this, you need to specify the mainline argument, which tells git whether C or F should be considered the mainline against which the comparison is done.

Post a Comment for "Can't Cherry Pick (error)"