I need some help planning how the workflow will go for a specific site development environment recently converted to Git (from SVN).
I have 4 developers, live and staging sites on the client server, and a dev server which hosts the "hub" (bare repo) plus 2 of the developers' repos. We have several milestones of changes to be worked on, with an unknown order of completion and being worked on by multiple developers. Also, the live site needs numerous quick fixes done on the fly.
My main questions are:
- How should urgent fixes be addressed
- How should publishing a milestone of changes go
My brain is starting to go in loops trying to figure out the best workflow. For reference in this post, let's say I have two milestones of changes: mobile and redesign. Here is what I've come up with so far:
Each developer repo, the hub repo, and the stage repo all have these branches: mobile, redesign, master. Live repo has one branch: master
QUICK FIXES: developer makes the change to their master branch, pushes to hub. Then at live, pulls the change from hub (or stage first if they need to test there beforehand).
FINAL STAGE AND PUBLISH "redesign" MILESTONE: developer pushes redesign branch to hub and pulls the changes at stage. Client tests and approves. At hub, developer merges redesign into master (and creates a tag here I think), then pulls master at live. Or would it be better for the developer to merge the branches in his copy, then just push his master to hub. Also, if a tag is created, is it better just to pull the tag (if possible) at live instead of pulling the master branch? And should the tags only reside on the hub repo?