Thursday, May 22, 2014

Github cherry picking

What is cherry picking ?
Cherry picking is plucking selective code to push to another branch. Sometime team is working on several modules and there is urgency to fix some production issue and deploy it.

We can have two ways of doing it
1. Create a separate branch from master (production branch) , for example name it as "branch1" and fix the bug and merge that branch into master back.

2. Fix the bug in existing branch and cherry pick it in master branch. This way only selective changes would be pushed to master and not all code.

Whenever we push some code in git, it creates a unique commit id.
For example:


Unique commit id looks like shown in green box



Copy that commit id which you want to cherry pick.
Git checkout to master branch (where you want to cherry pick)

$ command: git checkout master

Cherry pick the selected commit by passing commit id.

$ git cherry-pick b38adf46f21c963b6e85a804ef3942ad8d0b4e4d

Selected commit will be merged into master
Now you can check the status and push the code respectively.

Note: Cherry pick should be incremental and sequence wise. First commit should be cherry picked first followed by second and so on. 

Have a great day ahead !!