在 Git 工作流程中使用旧版本

Working with old releases in Git Workflow

据我了解,GIT wokflow 的描述如下:http://nvie.com/posts/a-successful-git-branching-model/

我有一个关于此工作流程中旧分支错误修复的问题。

鉴于我们有很多旧版本分支合并到 master 分支中。我们的最后一个版本是 2.6 版本。我们需要修复一些旧版本分支中发现的错误,比如 1.5。我们从与 1.5 版本相关的主分支状态创建一个分支,修复它,部署它,就可以了。但现在仍然存在一个问题:我们如何才能将此更改存储并传播到所有较新版本?

我们不能将此修复程序合并到 master 中。例如,因为我们正在修复的 class 可能会在 2.3 版本中被删除。只是master分支的HEAD中可能没有。

不确定我们是否可以将它合并到 master 的历史记录中。我无法想象它应该如何改变所有的提交。

看来在修补程序之后,master 分支的所有下一次提交都已过时且无法使用。如果我们在 1.9 版本中有一些错误,那么我们唯一的选择就是从 1.9 的主提交中创建一个分支,以某种方式将其与 1.5 修补程序合并,然后继续..

我的理解正确吗?

提到的工作流程不包括你提到的案例。 如果旧的 class 在较新的版本中不存在,这意味着该错误甚至可能不存在,因此不应将错误修复传播到该新版本。此外,您不需要将其合并到主历史记录中,因为主历史代表当前产品状态(在客户手中),这在发布中遥遥领先。 请记住,更改任何旧节点的历史记录将更改下一个节点的所有历史记录链。

为了解决这个问题,最好创建一个新分支,例如 "Support-1.5",其中包含与支持该特定旧版本产品相关的更新,将您的相关错误修复合并到其中,只要该产品的旧版本受支持,此支持分支就会存在。

希望对您有所帮助。