Branches used master - ON LIVE SERVER dev - Merged Code from all other branches which will be merged with master for pushing code to live. pre-dev - On DEV SERVER All other branches will be merged here to test on DEV SERVER bug-fixes - For common bug fixes tools-module - For Tools Module Note: 1. More branches can be created for other modules and test on dev server by merging with "pre-dev" BRANCH 2. Create new branch from "dev" BRANCH always because "dev" BRANCH is in sync with "master" BRANCH 3. "pre-dev" BRANCH is just to merge sub-branches like bug-fixes, tools-module and other branches and use it on dev server Procedure to follow: 1. Work on bug-fixes or other module specific branch 2. Checkout your working branch on dev server and test the functionality which is coded 3. If code is working fine, you can merge it to "pre-dev" BRANCH to keep the code on dev server 4. If you need to push some code on live server ("bug-fixes" is used as an example): i. Checkout to "dev" BRANCH git checkout dev ii. Merge the branch you have made changes to with "dev" BRANCH git checkout bug-fixes iii. You need to push the "dev" BRANCH code git push After this step your "dev" BRANCH has all the latest changes to be pushed to live iv. Now go to "master" BRANCH and merge it with "dev" BRANCH git checkout master git merge dev git push After this step all your latest code is added on "master" BRANCH v. Take pull on LIVE SERVER git pull origin master Make sure you have updated the database as well with new queries