使用Git进行选择性合并和部署

使用Git进行选择性合并和部署,git,github,azure-devops,branching-and-merging,azure-pipelines-release-pipeline,Git,Github,Azure Devops,Branching And Merging,Azure Pipelines Release Pipeline,我们遇到了Git合并和部署的情况 我们有下面的Git分支/合并和部署设置(如附图所示)。三个团队正在处理三个并行特性,他们将代码合并到“测试”(部署到TQA环境中进行测试)。如果TQA通过,则只有这些功能会移动到暂存。而且发布是按需进行的 当发布发生时,我们需要将登台的代码合并到Master中,并从Master部署到活动环境中。这一过程进展顺利,因为这部电影正在向连续剧过渡。 现在我们遇到了这样一种情况:一个功能需要快进才能上线,而另外两个功能仍在TQA和Staging中。但是,当我们将代码从S

我们遇到了Git合并和部署的情况

我们有下面的Git分支/合并和部署设置(如附图所示)。三个团队正在处理三个并行特性,他们将代码合并到“测试”(部署到TQA环境中进行测试)。如果TQA通过,则只有这些功能会移动到暂存。而且发布是按需进行的

当发布发生时,我们需要将登台的代码合并到Master中,并从Master部署到活动环境中。这一过程进展顺利,因为这部电影正在向连续剧过渡。 现在我们遇到了这样一种情况:一个功能需要快进才能上线,而另外两个功能仍在TQA和Staging中。但是,当我们将代码从Staging合并到Master时,它将合并所有三个特性,因此不发布的特性也将生效


我们怎样才能避免这种情况。附图解释了所需的行为。我们使用的是VSTS Git。

您可以只将功能分支合并到主分支中,而不是合并所有的暂存分支。

您可以只将功能分支合并到主分支中,而不是合并所有的暂存分支。

Git cherry pick在这里没有帮助吗?这不是一种正确的方法吗?@spideringweb
git cherry pick
复制一次提交的更改,并使用完全相同的更改创建新的提交。这会导致相同的更改在回购历史记录中多次出现。出现的主要问题是,当您最终决定合并同样具有这些更改的临时分支时,您将遇到合并冲突。
git cherry pick
在这里是否没有帮助?这不是一种正确的方法吗?@spideringweb
git cherry pick
复制一次提交的更改,并使用完全相同的更改创建新的提交。这会导致相同的更改在回购历史记录中多次出现。出现的主要问题是,当您最终决定合并具有相同更改的临时分支时,您将遇到合并冲突。