🍒 Cherry-pick = Selective Commits
Don’t need all commits? git cherry-pick applies specific commits. Choose what to bring, leave the rest.
📝 Cherry-pick Commands
# Cherry-pick a single commit git cherry-pick commit-hash # Cherry-pick multiple commits git cherry-pick hash1 hash2 hash3 # Cherry-pick range of commits git cherry-pick hash1..hash5 # From hash1 to hash5 git cherry-pick hash1^..hash5 # Including hash1 # Cherry-pick with options git cherry-pick -n hash # No commit (staged) git cherry-pick -e hash # Edit commit message git cherry-pick -x hash # Add cherry-pick info # Conflict resolution git cherry-pick hash # If conflicts: git status # See conflicts # Resolve conflicts, then: git add . git cherry-pick --continue # Abort: git cherry-pick --abort
🎯 Common Scenarios
# Hotfix to production git checkout main git pull origin main git cherry-pick hotfix-hash git push origin main # Apply feature from one branch to another git checkout feature-branch git cherry-pick bugfix-hash # Multiple cherry-picks git log --oneline feature-branch # abc1234 Add feature X # def5678 Fix bug Y # ghi9012 Update docs git checkout main git cherry-pick abc1234 def5678 # Cherry-pick with conflict resolution git cherry-pick hash # Auto-merging file.txt # CONFLICT (content): Merge conflict in file.txt git status # Unmerged paths: # both modified: file.txt # Edit file.txt to resolve conflicts git add file.txt git cherry-pick --continue # Or skip git cherry-pick --skip
✅ When to Use Cherry-pick
- Apply hotfix to multiple branches
- Selective merge of changes
- Backport bug fixes
- Skip unwanted commits
- Undo and reapply commits
“Cherry-pick selects specific commits. Apply hotfixes, skip unwanted changes. Essential for Git workflow.”
