Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to cherry-pick multiple commits

I have two branches. Commit a is the head of one, while the other has b, c, d, e and f on top of a. I want to move c, d, e and f to first branch without commit b. Using cherry pick it is easy: checkout first branch cherry-pick one by one c to f and rebase second branch onto first. But is there any way to cherry-pick all c-f in one command?

Here is a visual description of the scenario (thanks JJD):

enter image description here

like image 306
tig Avatar asked Nov 04 '09 00:11

tig


People also ask

Can we do cherry pick multiple commits?

Cherry-pick multiple Git commits Since Git 1.7. 2, you can cherry-pick a range of commits by using the dot notation. Note that using this command, the commit A will NOT be included into the cherry-pick. For example, back to the “master” branch, let's try to cherry-pick two commits into the feature branch.

How do you cherry pick multiple commits in VS code?

In the History tab, right-click the commit you want to cherry-pick and choose Cherry-Pick. Visual Studio doesn't support cherry-picking more than one commit at a time, so you'll need to repeat this step for each commit that you want to cherry-pick.


1 Answers

Git 1.7.2 introduced the ability to cherry pick a range of commits. From the release notes:

git cherry-pick learned to pick a range of commits (e.g. cherry-pick A..B and cherry-pick --stdin), so did git revert; these do not support the nicer sequencing control rebase [-i] has, though.

To cherry-pick all the commits from commit A to commit B (where A is older than B), run:

git cherry-pick A^..B 

If you want to ignore A itself, run:

git cherry-pick A..B 

Notes from comments:

  • A should be older than B, or A should be from another branch.
  • On Windows, it should be A^^..B as the caret needs to be escaped, or it should be "A^..B" (double quotes).
  • In zsh shell, it should be 'A^..B' (single quotes) as the caret is a special character.
  • For an exposition, see the answer by Gabriel Staples.

(Credits to damian, J. B. Rainsberger, sschaef, Neptilo, Pete and TMin in the comments.)

like image 186
Eric Darchis Avatar answered Nov 13 '22 08:11

Eric Darchis