Cherry-pick changes
GitLab implements Git’s powerful feature to cherry-pick any commit with a Cherry-pick button in merge requests and commit details.
Cherry-picking a merge request
After the merge request has been merged, a Cherry-pick button displays to cherry-pick the changes introduced by that merge request.
After you click that button, a modal displays a branch filter search box where you can choose to either:
- Cherry-pick the changes directly into the selected branch.
- Create a new merge request with the cherry-picked changes.
Cherry-pick tracking
Introduced in GitLab 12.9.
When you cherry-pick a merge commit, GitLab displays a system note to the related merge request thread. It crosslinks the new commit and the existing merge request.
Each deployment’s list of associated merge requests includes cherry-picked merge commits.
Cherry-picking a commit
You can cherry-pick a commit from the commit details page:
Similar to cherry-picking a merge request, you can cherry-pick the changes directly into the target branch or create a new merge request to cherry-pick the changes.
When cherry-picking merge commits, the mainline is always the first parent. If you want to use a different mainline, you need to do that from the command line.
Here’s a quick example to cherry-pick a merge commit using the second parent as the mainline:
git cherry-pick -m 2 7a39eb0
Cherry-pick into a project
- Introduced in GitLab 13.11.
- Feature flag removed in GitLab 14.0
You can use the GitLab UI to cherry-pick merge requests into a project, even if the merge request is from a fork:
- In the merge request’s secondary menu, click Commits to display the commit details page.
- Click on the Options dropdown and select Cherry-pick to show the cherry-pick modal.
- In Pick into project and Pick into branch, select the destination project and branch:
- (Optional) Select Start a new merge request if you’re ready to create a merge request.
- Click Cherry-pick.
Related links
- The Commits API enables you to add custom messages to changes you cherry-pick through the API.