DrupalCamp London: What is Git Flow?
Warning: This post is over a year old. I don't always update old posts with new information, so some of this information may be out of date.
Here are my slides from my "What is Git Flow?" session at DrupalCamp London.
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.
I've had some great feedback via Twitter:
— James Tombs (@jtombs) March 2, 2014
— Greg Franklin (@gfranklin) March 2, 2014
About the Author
Oliver Davies is a Full Stack Web Developer and System Administrator based in the UK. He is a Senior Software Engineer at Inviqa and a part-time freelancer specialising in Drupal, Symfony and Laravel development and Linux systems administration.