Organizing your git workflow with "Git Flow"

"Git Flow" is a system for organizing branches in git. If you haven't heard of it, you should start by reading developer Vincent Driessen's article that first introduced it: nvie.com/posts/a-successful-git-branching-model .

We've been using Git Flow to manage the development cycle of our Drupal websites and it's made a world of difference. Repositories stay cleaner, procedures are clearer and more likely to be followed, and getting up to speed on new projects (or coming back to old ones) no longer requires the inefficient head scratching it once did. We think this stuff is too good not to share!

In this session, we'll provide a highly practical, step-by-step introduction to using the Git Flow methodology to manage your own Drupal websites. Along the way, we'll cover a slew of best practices, tips and tricks, and git tools. To name just a few things we'll touch on:

  • How to make quick "hot fixes" to your production site at any time without messing up larger changes you and your team are working on.
  • How and why it makes sense to deploy tags (not branches) to your production environment.
  • The benefits of consolidating new features into scheduled releases (rather than deploying them as soon as they're done).
  • Helpful naming conventions for branches and tags.
  • How to manage scripts for database changes alongside your code in git.
  • Lots, lots more!

This presentation should be accessible to you even if you only know a few git basics, and hopefully interesting even if you're a seasoned git pro.

Schedule info
Status: 
Proposed
Session Info
Speaker(s): 
Track: 
DevOps
Experience level: 
Intermediate

Comments

I hope this one gets in. We've been doing a git-flow-like process but would love to see how a proper a git-flow workflow works in the Drupal dev cycle.

Looks good. I'd be interested to hear your thoughts on using this flow to manage both a distribution and the sites that are built from it. Or integration with Features/Apps.

Features (that is, from the Features module) are a huge part of how this all works -- technically, you don't have to use them to use Git Flow, but it makes life so much easier if you do. So yes, we'll certainly touch on that.

On the other hand, I think distributions are less likely to be a big part of this session; for the sake of simplicity, the focus is going to be on maintaining a single Drupal website (which could certainly start from a distribution, but would ultimately be its own git project). That said, I'm positive you could adapt this to whatever distribution-related workflow you have going and would be happy to chat more about it.