~/
hackweb.dev
Cherry-Picking Commits
Quiz
⌘K
...
~/
/tutorials
/git/git-cherry-pick/edit
~ Contribute
Suggest a correction or improvement. The author reviews it before it goes live.
Loading...
Comment
0 / 300
Typo
Grammar
Broken link
Clarify
Code
en/tutorials/git/16git-cherry-pick
Write
Preview
Diff
# Cherry-Picking Commits Cherry-picking applies a specific commit from one branch into another. It's useful for pulling in a single fix without merging entire branches. ## Basic Usage ```bash git cherry-pick <commit-hash> ``` This creates a new commit on your current branch with the same changes as the original. The original commit remains untouched on its branch. ## Cherry-Pick a Range ```bash git cherry-pick A..B ``` Applies commits from A (exclusive) to B (inclusive). Useful for picking a batch of related changes. ## Cherry-Pick Without Committing ```bash git cherry-pick --no-commit <commit-hash> ``` Applies the changes to your working directory without creating a commit. Lets you review before staging and committing manually. ## Multiple Commits ```bash git cherry-pick <hash1> <hash2> <hash3> ``` You can cherry-pick multiple specific commits by listing their hashes. Each creates a new commit on the current branch. ## Finding Commits to Cherry-Pick Use `git log` to find the commit hash you want: ```bash git log --oneline feature-branch # Output: # a1b2c34 Fix login validation # d5e6f78 Add error handling # g9h0i12 Update user model ``` ## When to Use Cherry-Pick - Backporting a bugfix to a release branch - Pulling one feature commit into a different branch - Recovering a commit that was lost during a rebase - Applying a hotfix to multiple active branches ## Handling Conflicts If the cherry-pick causes a conflict, Git stops and asks you to resolve it: ```bash # After resolving conflicts: git add . git cherry-pick --continue # Or abort: git cherry-pick --abort ``` ## Best Practices - Prefer merging when pulling multiple commits from the same branch - Use cherry-pick for isolated fixes or specific backports - Always verify the cherry-picked commit with `git diff` - Note the original commit hash in the message for traceability ## Common Mistakes - Cherry-picking too many commits — at that point, merge is cleaner - Not realizing cherry-pick creates a new commit with a different hash - Cherry-picking commits that depend on other unapplied commits - Forgetting to resolve conflicts during the cherry-pick - Cherry-picking across branches with very different histories
No changes yet
Reset to original
Submit suggestion
cancel