what is GitHub Flow?

  • Anything in the master branch is deployable
  • To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
  • Commit to that branch locally and regularly push your work to the same named branch on the server
  • When you need feedback or help, or you think the branch is ready for merging, open a pull request
  • After someone else has reviewed and signed off on the feature, you can merge it into master
  • Once it is merged and pushed to ‘master’, you can and should deploy immediately

That is the entire flow. It is very simple, very effective and works for fairly large teams.

So, let’s look at each of these steps in turn.

#1 – anything in the master branch is deploy-able

#2 – create descriptive branches off of master

#3 – push to named branches constantly

#4 – open a pull request at any time

#5 – merge only after pull request review

#6 – deploy immediately after review

To read the full article by Scot Chacon please click here.