How to Cherry-Pick Multiple Commits

Better Stack Team
Updated on July 25, 2024

Cherry-picking multiple commits in Git allows you to selectively apply specific commits from one branch onto another branch. This process is useful when you want to incorporate specific changes without merging entire branches. Here’s how you can cherry-pick multiple commits:

Cherry-picking Sequential Commits

  1. Identify Commits to Cherry-pick: First, identify the commits you want to cherry-pick. You'll need the commit hashes or references (like branch names or tags) of these commits.
  2. Cherry-pick Commits: Use git cherry-pick followed by the commit hashes of the commits you want to apply:

     
    git cherry-pick <commit1> <commit2> <commit3> ...
    

    Replace <commit1>, <commit2>, <commit3>, etc., with the actual commit hashes or references you want to cherry-pick. You can specify as many commits as needed in a single command.

    For example:

     
    git cherry-pick abc1234 def5678 ghi9012
    
  3. Resolve Conflicts (if any): If there are merge conflicts during cherry-picking, Git will pause the process and prompt you to resolve conflicts manually. After resolving conflicts, stage the changes (git add) and continue the cherry-pick (git cherry-pick --continue).

Cherry-picking Range of Commits

You can also cherry-pick a range of commits using a single command:

 
git cherry-pick <start-commit>^..<end-commit>
  • <start-commit>: The first commit you want to cherry-pick.
  • <end-commit>: The commit immediately after the last commit you want to cherry-pick.

For example, to cherry-pick a range of commits from abc1234 to def5678 (inclusive), you can use:

 
git cherry-pick abc1234^..def5678

Important Considerations

  • Commit Order: Commits are cherry-picked in the order you specify them in the git cherry-pick command. If conflicts occur, handle them in sequence or use git rerere to automate resolution for similar conflicts.
  • Commit Hashes: Ensure you provide correct and valid commit hashes or references. You can find commit hashes using git log or other Git history inspection commands.
  • Branch Checkout: Cherry-pick commits from the branch where you want to apply them. If you're cherry-picking onto a different branch, switch to that branch first (git checkout target-branch).

Conclusion

Cherry-picking allows you to selectively apply commits from one branch to another, providing flexibility in integrating specific changes. It's a powerful Git feature useful in various workflows, including backporting fixes, applying feature branches selectively, or integrating changes from experimental branches.

Got an article suggestion? Let us know
Explore more
Git
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Make your mark

Join the writer's program

Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.

Write for us
Writer of the month
Marin Bezhanov
Marin is a software engineer and architect with a broad range of experience working...
Build on top of Better Stack

Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.

community@betterstack.com

or submit a pull request and help us build better products for everyone.

See the full list of amazing projects on github