Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING BASH RUST

Git Cherry-pick & Patch


What is Cherry-pick?

Cherry-pick lets you copy a single commit from one branch to another. It’s useful when you want just one (or a few) changes, not everything from another branch.


What is a Patch?

A patch is a file with changes from one or more commits. You can share a patch or apply it to another repository, even if it’s unrelated to your own.


When to Use Each

  • Use cherry-pick to copy a commit between branches in the same repository.
  • Use patches to share changes as files, or when working across different repositories.

How to Cherry-pick a Commit

Copy a specific commit from another branch to your current branch:

Example: Cherry-pick a Commit

git cherry-pick abc1234

This creates a new commit on your branch with the same changes.



Edit the Commit Message

Use --edit to change the commit message while cherry-picking:

Example: Edit Commit Message

git cherry-pick abc1234 --edit

Apply Without Committing

Use --no-commit (or -n) to apply the changes, but not create a commit yet. This lets you make more changes before committing:

Example: Cherry-pick Without Commit

git cherry-pick abc1234 --no-commit

Add Commit Origin

Use -x to add a line to the commit message showing where the commit came from:

Example: Cherry-pick With Origin

git cherry-pick abc1234 -x

Handling Conflicts

If there are conflicts, Git will pause and ask you to fix them. After fixing, run:

Example: Continue After Conflict

git add .
git cherry-pick --continue

To cancel the cherry-pick, use:

Example: Abort Cherry-pick

git cherry-pick --abort

How to Create a Patch

Make a patch file from a commit:

Example: Create Patch

git format-patch -1 abc1234

For multiple commits:

Example: Multiple Commits

git format-patch HEAD~3

How to Apply a Patch

Apply a patch file to your current branch:

Example: Apply Patch

git apply 0001-some-change.patch

Apply a Patch and Keep Metadata

Use git am to apply a patch and keep the original author and message:

Example: Apply Patch with Metadata

git am 0001-some-change.patch

Reverse a Patch

Undo the changes in a patch file:

Example: Reverse Patch

git apply -R 0001-some-change.patch

Tip: Use cherry-pick for copying a single commit in the same repository.

Use patches to share changes as files or work across repositories.

If you want to keep commit history and authors, use git am instead of git apply.


Troubleshooting & Best Practices

  • Cherry-pick conflicts: If you get conflicts, fix them, then run git cherry-pick --continue.
    Abort with git cherry-pick --abort if needed.
  • Patch doesn't apply cleanly: Make sure the patch matches your codebase. Sometimes you may need to adjust manually.
  • Keep your branches up to date: Before cherry-picking or applying patches, pull the latest changes.



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.