We have a Staging Branch. Then we came out with a Beta branch for users to move whenever they wanted to from old Production branch to the new features.

Our plan seemed simple, we test on Staging, when items get QA'd, they get cherry-picked and deploy to Beta.

Here's the problem! A bug will discreetly make its way on to Beta, and since Beta is a production environment, it needs fixes fast and accurate. But not all the QA's got done. Enter Git hell..

So I find a problem on Beta. No sweat, it's already been fixed on Staging, but when I go to cherry-pick the item over, Beta barely has any of the other pre-requisites of code to implement this small change. Now Beta has a little here and a little there, and I can't imagine it as a code base being as stable as Staging. What's more, is I'm dealing with some insane Git conflicts, and having to monkey patch a bunch of things to make up for what Beta hasn't caught up with Staging.

Can someone polite or non-polite terms, tell me what we're doing wrong here as far as assembling this project? Any awesome recommendations or workarounds or alternatives to the system we came up with?


You fix outright bugs in the Beta branch in Beta, not in Staging. Then you back port the fix from Beta to Staging, if necessary, before it gets overwritten.

Not the answer you're looking for? Browse other questions tagged or ask your own question.