当使用Git Flow管理发行版和开发版时,如何追溯应用修补程序?

当使用Git Flow管理发行版和开发版时,如何追溯应用修补程序?,git,git-flow,Git,Git Flow,我们目前正在使用Git Flow来处理将修补程序应用到我们发布的软件版本以及内部开发版本的问题。这个过程运行得很好——编码人员提前决定问题是否需要尽快出现在实时版本中,并在提交将合并到develop和master中的代码之前创建修补程序分支 然而,有时,对某个问题进行修复的commit会成为一个大问题,我们希望在livemaster分支上解决这个问题。我们现在如何正确地做到这一点 目前,我们正在将相关的commit/s从master中挑选到一个悬挂的分支中,我们正在维护该分支,并认为一旦它平静下

我们目前正在使用Git Flow来处理将修补程序应用到我们发布的软件版本以及内部开发版本的问题。这个过程运行得很好——编码人员提前决定问题是否需要尽快出现在实时版本中,并在提交将合并到develop和master中的代码之前创建修补程序分支

然而,有时,对某个问题进行修复的commit会成为一个大问题,我们希望在livemaster分支上解决这个问题。我们现在如何正确地做到这一点

目前,我们正在将相关的commit/s从master中挑选到一个悬挂的分支中,我们正在维护该分支,并认为一旦它平静下来,我们将做一个小补丁,使master与develope同步

我的理解是cherrypicking提交给master这样的分支最终会在以后试图在develop中进行合并以获得功能发布时导致一些痛苦的合并冲突,不是吗

最终会导致一些痛苦的合并冲突后,当一个人试图合并在开发一个功能版本,不是吗

对。可能不是这样,如果变化完全相同,那么就不会有冲突。但经常会有,而且是一种糟糕的情况——双方都有相同的变化

这是关于gitflow的,
master
本身应该在出现任何新内容时立即合并到
develop
。在这种情况下也会有所帮助。或者,您可以立即将精心挑选的修补程序合并到develop中,以避免延迟冲突解决

如果冲突仍然难以解决,您可以先在master中恢复修补程序。只要确保它确实被选为
master

然而,有时,对某个问题进行修复的commit结果是 这是一个大问题,也是我们希望在live master分支上解决的问题。我们该怎么办 这是正确的吗

-->无论出于何种原因,永远不要直接向
master
分支机构承诺,即使开发团队处于紧急状态

要遵循的最佳实践

只需几秒钟即可分叉新的(热修复)分支,只需几秒钟即可将热修复分支合并回主分支。在合并回
master
分支之前,您需要修改、提交、再次提交、单元测试、集成测试等

资料来源:


看到一个众所周知的帖子:

我想我还不够清楚:提交可能已经被推到了开发阶段,比如说,2天前。现在,我们只需要在主机上提交即将发布的修补程序版本。(1)从主机
branch
派生一个名为
hotfix foo
的分支。(2) Cherry pick hot fix commit(称为C)从
develop
分支到
hot fix foo
。(3) 在
热修复程序foo
上运行单元测试和集成测试。(4) 如果步骤3正常,请将提交C从
热修复程序foo
挑选到
主分支。结束。