diff options
Diffstat (limited to 'doc/topics/git/cherry_picking.md')
-rw-r--r-- | doc/topics/git/cherry_picking.md | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/topics/git/cherry_picking.md b/doc/topics/git/cherry_picking.md new file mode 100644 index 00000000000..5a0867371bb --- /dev/null +++ b/doc/topics/git/cherry_picking.md @@ -0,0 +1,53 @@ +--- +stage: Create +group: Source Code +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments +comments: false +--- + +# Cherry Pick + +Given an existing commit on one branch, apply the change to another branch. + +This can be useful for backporting bug fixes to previous release branches. Make +the commit on the default branch, and then cherry pick it into the release branch. + +## Sample workflow + +1. Check out a new `stable` branch from the default branch: + + ```shell + git checkout master + git checkout -b stable + ``` + +1. Change back to the default branch: + + ```shell + git checkout master + ``` + +1. Make any required changes, then commit the changes: + + ```shell + git add changed_file.rb + git commit -m 'Fix bugs in changed_file.rb' + ``` + +1. Review the commit log and copy the SHA of the latest commit: + + ```shell + git log + ``` + +1. Check out the `stable` branch: + + ```shell + git checkout stable + ``` + +1. Cherry pick the commit by using the SHA copied previously: + + ```shell + git cherry-pick <commit SHA> + ``` |