"value":"\n <p>A common question is which [Git] branch should be on which environment.<\/p>\n\n<p>Most projects I've worked on have two or more environments: production, staging (or test) and development.<\/p>\n\n<p>Earlier in my career, we used Git Flow heavily. A Git branching workflow based on having different branches - i.e. <code>develop<\/code>, <code>master<\/code> and any arbitrary short-lived feature, hotfix and release branches.<\/p>\n\n<p>These matched nicely with our three environments.<\/p>\n\n<p>Usually, the <code>develop<\/code> branch would be used in the development environment. The <code>master<\/code> branch would be on staging and a tagged release from <code>master<\/code> on production.<\/p>\n\n<h2 id=\"what-about-now%3F\">What about now?<\/h2>\n\n<p>I prefer trunk-based development, where there is one long-lived branch to which everyone commits their changes.<\/p>\n\n<p>There's only one branch, so you can either follow continuous deployment and use the same branch for all environments - including production - or separate production using a dedicated branch or tag if you need more control.<\/p>\n\n<p>The mainline branch is used in all pre-production environments, such as staging and development.<\/p>\n\n<h2 id=\"what-about-differences-between-the-environments%3F\">What about differences between the environments?<\/h2>\n\n<p>What if we need differences, such as a feature that must be enabled in a particular environment if the same code is on both?<\/p>\n\n<p>My go-to approach is feature flagging, and this approach is something I'll describe more in tomorrow's email.<\/p>\n\n ",
"format":"full_html",
"processed":"\n <p>A common question is which [Git] branch should be on which environment.<\/p>\n\n<p>Most projects I've worked on have two or more environments: production, staging (or test) and development.<\/p>\n\n<p>Earlier in my career, we used Git Flow heavily. A Git branching workflow based on having different branches - i.e. <code>develop<\/code>, <code>master<\/code> and any arbitrary short-lived feature, hotfix and release branches.<\/p>\n\n<p>These matched nicely with our three environments.<\/p>\n\n<p>Usually, the <code>develop<\/code> branch would be used in the development environment. The <code>master<\/code> branch would be on staging and a tagged release from <code>master<\/code> on production.<\/p>\n\n<h2 id=\"what-about-now%3F\">What about now?<\/h2>\n\n<p>I prefer trunk-based development, where there is one long-lived branch to which everyone commits their changes.<\/p>\n\n<p>There's only one branch, so you can either follow continuous deployment and use the same branch for all environments - including production - or separate production using a dedicated branch or tag if you need more control.<\/p>\n\n<p>The mainline branch is used in all pre-production environments, such as staging and development.<\/p>\n\n<h2 id=\"what-about-differences-between-the-environments%3F\">What about differences between the environments?<\/h2>\n\n<p>What if we need differences, such as a feature that must be enabled in a particular environment if the same code is on both?<\/p>\n\n<p>My go-to approach is feature flagging, and this approach is something I'll describe more in tomorrow's email.<\/p>\n\n ",