From: Junio C Hamano Date: Thu, 15 Nov 2007 08:00:45 GMT Subject: [Discussion] cherry-picking a merge Message-ID: <7v3av86iqa.fsf@gitster.siamese.dyndns.org> Earlier "git cherry-pick" learned the "-m " option to allow cherry-picking a merge commit. When you have this history: ---o---o---C---A---M \ / o---o-------B You can replay the change between A and M (in other words, the effect of merging B into A) on top of C to create a new commit, with: $ git cherry-pick -m 1 M In the current implementation, the resulting commit has a single parent C. This is quite similar to a squash merge of B into C. When you think about it, as long as the topological relationship between A and B is very similar to that of C and B (iow, "merge-base A B" and "merge-base C B" are the same), the effect should be the same as a real merge between B and C, shouldn't it? ---o---o---C---A---M \ \ / o---o---\---B \ \ `---X I am wondering if it makes sense to record the result of "cherry-pick -m" as a real merge between the current HEAD and all the other parents of the cherry-picked merge except the one that is named with the .