How to Cherry-Pick a Git Commit from a Fork

How to Cherry-Pick a Git Commit from a Fork

Software Development
June 8, 2023


When working with Git, there are times when you might want to include specific changes or commits made in a different repository, or even a fork of the same repository. This is where the cherry-pick command comes into play.
Cherry-picking in Git means to choose a commit from one branch and apply it onto another. This ensures that you get only the changes you want without merging a whole branch.


In the following steps, we will be using a GitHub-hosted repository as an example. However, these steps will work with any Git repository, regardless of where it is hosted. You can even add another Git repository on your filesystem as a remote if you need to.

Steps to Cherry-Pick a Git Commit from a Fork

Here's a step-by-step guide on how to cherry-pick a commit from a fork:

Step 1: Get the Address of the Fork

The first thing you need is the URL of the fork. This should follow the format:{username}/{repo-name}

Step 2: Add the Fork as a Remote

Next, you need to add the fork as a new remote to your local Git repository. You can do this using the git remote add command followed by a name for the remote (usually the username of the owner of the fork), and then the URL of the fork:
git remote add {username}{username}/{repo-name}
This creates a new remote, pointing to the forked repository.

Step 3: Fetch the Remote

Now, fetch all the branches and commits from the new remote with git fetch:
git fetch {username}
This will fetch all the updates from the forked repository.

Step 4: Cherry-Pick the Commit(s)

Finally, you're ready to cherry-pick the commit(s). You will need the hash of the specific commit you want to cherry-pick. Then, use the git cherry-pick command:
git cherry-pick {commit_hash}
This command will apply the changes from the specific commit to your current branch.


There you have it - cherry-picking a commit from a fork! It's a simple yet powerful way to pull in changes from a forked repository without merging whole branches. Remember to replace {username}, {repo-name}, and {commit_hash} with the actual username, repository name, and the hash of the commit you want to cherry-pick, respectively. Happy cherry-picking!