是否可以合并功能以使用 git 流程发布

is it posible to merge feature to release with git flow

我正在使用 gitflow 和 Sourcetree。

默认情况下,Sourcetree 让我合并功能到开发,开发到发布,发布到生产

有时候,一个合并功能开发,它失败了,所以需要更多的工作。

然后,如果有人想要发布,git流程会将这些错误合并到发布。

我更愿意合并唯一已验证发布的功能。

是否可以使用 git 流程来做到这一点?

答案是肯定的。

GitFlow 是一套开源脚本,您可以根据需要进行修改。

但在这种情况下它与 gitflow 无关,它是一种纯编码。无论您是否使用 git 流程,您都可以提交不良内容,除非您在提交之前检查过代码,否则您不应该这样做,因此 git 流程不是这里的情况。

如何判断提交的好坏?

一旦你回答了这个问题,你可以简单地修改负责将功能合并到开发中并阻止合并的功能脚本。

I would prefer to merge the only Feature that has been validated to release.

如前一段所述,一旦您知道如何识别好的提交,只需根据您的需要修改 git 流程脚本。


来源

检查第 313 行 https://github.com/nvie/gitflow/blob/develop/git-flow-feature

# lines 313 >
# merge into BASE
git_do checkout "$DEVELOP_BRANCH"
if [ "$(git rev-list -n2 "$DEVELOP_BRANCH..$BRANCH" | wc -l)" -eq 1 ]; then
    git_do merge --ff "$BRANCH"
else
    if noflag squash; then
        git_do merge --no-ff "$BRANCH"
    else
        git_do merge --squash "$BRANCH"
        git_do commit
        git_do merge "$BRANCH"
    fi
fi

如果开发合并导致问题,您不应该提交它。我的建议是在将功能合并到开发之前将开发分支合并到功能分支并解决那里的任何冲突(无论是合并冲突还是逻辑冲突)。

另外 - 如果你确实使用 gitflow 模型 - 你不应该将任何东西合并到发布中(除了错误修复)。相反,发布应该是当前开发状态​​的一个新分支,如果您认为有任何功能尚未准备好发布,您可以在发布分支中将它们关闭。