How to cherry pick from 1 branch to another
I have 2 branches, master
and dev
.
I am on dev
branch and I want to cherry-pick 1 commit from master
to dev
. So I did
$ git cherry-pick be530cec7748e037c665bd5a585e6d9ce11bc8ad
Finished one cherry-pick.
But when I do git status
and gitx
, I don't see my commit be530cec7748e037c665bd5a585e6d9ce11bc8ad
in git history.
How can I see my commit in the dev
branch?
Solution 1:
When you cherry-pick, it creates a new commit with a new SHA. If you do:
git cherry-pick -x <sha>
then at least you'll get the commit message from the original commit appended to your new commit, along with the original SHA, which is very useful for tracking cherry-picks.
Solution 2:
If you're an IntelliJ user, it's pretty simple.
Here, I am cherry-picking a commit from master
branch to give-me-commit-branch
. Note a few points in the below pic:
-
destination: The current checkout branch is
give-me-a-commit-branch
. Denoted by tag icon. -
source: The selected
master
branch whose commit logs are displayed on the right side is the source of the commit. - searching ability: Using the search (lens icon) option, we can find the revision number.
- multiple-selections: At a time, we can select multiple commits and cherry-pick them at one go!
This is easy-to-use and transparent.