Skip to content

Home

Pick changes from one or more Git commits

Oftentimes, working on one feature or bug fix might unveil a solution or refactor that could be a standalone set of changes. In such cases, you might want to isolate the relevant commits and apply them in a different branch. Alternatively, you might want to use work from another branch in your current branch. This is where git cherry-pick comes in handy.

Using git cherry-pick <commit>, you can pick changes from a single commit and apply them on top of your current branch. If you have multiple commits you want to pick, you can specify them space-separated or as a range, using git cherry-pick <commit-1> <commit-2>....

Similarly, if you want to pick changes from a range of commits, you can use git cherry-pick <first-commit>..<last-commit>. As this range is not inclusive of the first-commit, you can use git cherry-pick <first-commit>^..<last-commit> to include it.

# Usage: git cherry-pick (<commit>... | <first-commit>..<last-commit>)

git cherry-pick 3050fc0de
# Picks changes from the commit `3050fc0de`

git cherry-pick 3050fc0de c191f90c7
# Picks changes from the commits `3050fc0de`, `c191f90c7` and `0b552a6d4`

git cherry-pick 3050fc0de..c191f90c7
# Picks changes from the commits in the range:
#  `3050fc0de` (not inclusive) - `c191f90c7` (inclusive)

git cherry-pick 3050fc0de^..c191f90c7
# Picks changes from the commits in the range:
#  `3050fc0de` - `c191f90c7` (both inclusive)

More like this

Start typing a keyphrase to see matching snippets.