Sunday, January 22, 2017

Development Process in GitHub

GitHub flow

In this flow Master Branch, which always act as a production branch that keeps the production copy always. Feature Branch for the development branch There are two ways of committing changes.

  • Check-in without any code review (Most people doesn’t prefer for this)
    • Make necessary changes on branch
  • Check-in with code review, forking or branching is required before merging. This is done by protecting a branch
    • Branching is not recommended, as everyone can be able to see the branch and any one can check-in on the branch
    • Fork is a personal branch which will be visible only to you.
    • Make necessary changes on your fork.
  • Commit Changes
  • Pull Request, If code changes is done in personal branch, merge changes to feature branch
  • Once a branch is ready to be deployed, deploy the branch, if there is any issue in production then rollback production with master, and else merge branch changes to master. 
  • For more information: https://guides.github.com/introduction/flow/


Git Flow

In this flow there will be set of physical branch like

  • Master(Production Branch)
  • Development Branch
  • Feature Branch
  • Release Branch
  • Hot Fix Branch
This flow is most commonly used in enterprise application development. Install “Gitflow/Git-flow-cheatsheet” application which will provide high level operation for Vincent Driessen's branching model. Create required set of Physical branches.

How this works

  • Development is done at Development and Feature Branch
  • Once testing is done on a development/feature branch, source code will be merged to release branch.
  • Release ready validation is performed on release branch.
  • Changes on release branch will be merged into development branch.
  • Once release branch is ready to be deployed, deploy the release branch in production.
  • Merge Release branch with hotfix, if there is any issue in production, then rollback change with master.
  • If there is any issue in production after rollout, do the changes in hotfix branch and move changes to production from hotfix.
  • Merge changes from hotfix to development and release branch.
  • Once hotfix branch is stable, changes will be merged to master.
  • For more information https://github.com/nvie/gitflow http://danielkummer.github.io/git-flow-cheatsheet/


No comments:

Post a Comment