DrupalCamp London: What is Git Flow?

Here are my slides from my “What is Git Flow?” session at DrupalCamp London.

{% include ‘speakerdeck’ with { data_id: ‘201559e0f103013198dd5a5f6f23ab67’ } %}

Take aways

The main take aways are:

  • Git Flow adds various commands into Git to enhance its native functionality, which creates a branching model to separate your stable production code from your unstable development code.
  • Never commit directly to the master branch - this is for production code only!
  • You can commit directly to the develop branch, but this should be done sparingly.
  • Use feature branches as much as possible - one per feature, user story or bug.
  • Commit early and often, and push to a remote often to encourage collaboration as well as to provide a backup of your code.
  • You can use settings within services like GitHub and Bitbucket to only allow certain users to push to the master and develop branches, and restrict other Developers to only commit and push to feature branches. Changes can then be committed and pushed, then reviewed as part of a peer code review, and merged back into the develop branch.


If you’ve got any questions, please feel free to tweet at me or fill in the session evaluation form that you can complete on the DrupalCamp London website.

I’ve had some great feedback via Twitter:

{% include ‘tweet’ with { content: ’

@opdavies @DrupalCampLDN always had trouble with git. Your talk + Git flow has made it all very easy.

— James Tombs (@jtombs) March 2, 2014’ } %}

{% include ‘tweet’ with { content: ’

Great presentation by @opdavies on git flow at #dclondon very well prepared and presented. pic.twitter.com/tDINp2Nsbn

— Greg Franklin (@gfranklin) March 2, 2014’ } %}

{% include ‘tweet’ with { content: ’

Great talk on git flow @opdavies #dclondon

— Curve Agency (@CurveAgency) March 2, 2014’ } %}