从旧标签获得git修补程序的最佳实践
我最近开始与git合作一个开源项目,并决定按照Vincent Driessen的想法工作 我理解这种模式背后的原因,并且我已经看到它被广泛推荐,所以它似乎是一个不错的选择 我在这个模型中缺少的是,在为旧版本(标签)创建修补程序的情况下,它是一种推荐的方式,但我在网上找不到 例如,我的master包含最新版本-2.0,并且我有版本1.5和1.0的标记。现在,假设一位正在使用1.0版的客户发现该版本中有一个bug,但不希望更新到包含该bug修复的较新版本,只需要一个修补程序\补丁(不确定这里的正确术语是什么)。根据该模型,不会处理这种情况,在该模型中,热修复程序固定在热修复程序分支上,然后合并到主线(master\dev)。但在我的示例中,客户只需要最小的提交集,它可以在没有新特性的情况下(尽可能多地)修复bug 在这种情况下,什么是git方面的最佳方法?我是否应该从标记1.0和cherry pick提交创建一个专用分支?我是否应该从修复问题的第一次提交开始进行分支,如果更容易的话,是否应该恢复?我应该让这根树枝永远活下去吗 我想知道在以下情况下该怎么办:从旧标签获得git修补程序的最佳实践,git,version-control,branching-and-merging,Git,Version Control,Branching And Merging,我最近开始与git合作一个开源项目,并决定按照Vincent Driessen的想法工作 我理解这种模式背后的原因,并且我已经看到它被广泛推荐,所以它似乎是一个不错的选择 我在这个模型中缺少的是,在为旧版本(标签)创建修补程序的情况下,它是一种推荐的方式,但我在网上找不到 例如,我的master包含最新版本-2.0,并且我有版本1.5和1.0的标记。现在,假设一位正在使用1.0版的客户发现该版本中有一个bug,但不希望更新到包含该bug修复的较新版本,只需要一个修补程序\补丁(不确定这里的正确术
另外,正如你所说的,你应该考虑从标签1创建一个新的分支,樱桃选择热修复,然后将分支标记为一个颠覆(1.0.1)。 您应该将相同的策略应用于下一次提交,或者至少应用于下一个标记:假设修补程序将在1.5版中发布,给定标记列表[1.0,1.2,1.3,1.5],您应该创建Subversion[1.0.1,1.2.1,1.3.1]
另外,正如你所说的,你应该考虑从标签1创建一个新的分支,樱桃选择热修复,然后将分支标记为一个颠覆(1.0.1)。 您应该将相同的策略应用于下一次提交,或者至少应用于下一个标记:假设修补程序将在1.5版中发布,给定标记列表[1.0,1.2,1.3,1.5],您应该创建Subversion[1.0.1,1.2.1,1.3.1]
不建议重写历史记录,因为您的项目将与其他人共享,并且在同步点(推/拉)上会有冲突。选择最合理的解决方案,但不要修补您与社区共享的提交。即使在1.0版中发现了此错误,但实际上它是新的。没有人能确定旧版本没有bug,因此对于新的find bug,您应该在最新版本中修复它。因此,对于您的情况,您应该修复基于2.0的bug
因为
master
分支是托管在上的主代码(或者我们称之为生产环境),所以您应该解决hotfix
分支上的错误,然后将其合并到master
分支中。然后删除旧的标记2.0,并为新的合并提交添加标记2.0。即使在版本1.0中发现了此错误,但实际上它是新的。没有人能确定旧版本没有bug,因此对于新的find bug,您应该在最新版本中修复它。因此,对于您的情况,您应该修复基于2.0的bug
因为
master
分支是托管在上的主代码(或者我们称之为生产环境),所以您应该解决hotfix
分支上的错误,然后将其合并到master
分支中。然后删除旧的标记2.0,并为新合并的提交添加标记2.0。替换发布的标记似乎很危险,因为没有人能分辨出哪个是该修复程序的级联效应,您不想重新部署2.0并具有不同的行为。替换发布的标记似乎很危险,因为没有人能分辨出哪个是该修复程序的级联效应,您不希望重新部署2.0并有不同的行为。