GIT:在分支之间集成提交的自动化

GIT:在分支之间集成提交的自动化,git,branch,commit,integrate,cherry-pick,Git,Branch,Commit,Integrate,Cherry Pick,我的团队有两个GIT分支: 为我们的生产环境提供服务的“主要”分支机构 从主分支分叉的“update_1”分支 我们的想法是,“main”是我们目前的生产分支。我们只允许向该分支添加小的bug修复,以解决关键的生产问题。”update_1'branch是我们正在开发的下一个版本。此分支具有更大的功能项,需要更多的时间来开发和稳定。一旦“更新1”中的开发完成,我们将把这个分支推向生产,然后从“更新1”分支中派生出一个新的“更新2”分支,开始进行下一个更新一旦“update_1”分支被推到生产位

我的团队有两个GIT分支:

  • 为我们的生产环境提供服务的“主要”分支机构
  • 从主分支分叉的“update_1”分支
我们的想法是,“main”是我们目前的生产分支。我们只允许向该分支添加小的bug修复,以解决关键的生产问题。”update_1'branch是我们正在开发的下一个版本。此分支具有更大的功能项,需要更多的时间来开发和稳定。一旦“更新1”中的开发完成,我们将把这个分支推向生产,然后从“更新1”分支中派生出一个新的“更新2”分支,开始进行下一个更新一旦“update_1”分支被推到生产位置,主“分支”将不再使用

由于这种分支模型,提交到“main”分支的任何修复程序也必须集成到“update_1”分支中,因此当“update_1”分支推送到生产环境时,我们不会丢失修复程序。类似地,我们需要将“main”和“update_1”分支中的所有修复程序集成到“update_2”分支中(一旦创建),这样,一旦“update_2”分支交付生产,我们就不会丢失任何生产中的修复程序

目前,这是一个手动过程。我们让开发人员将他们的更改挑选到所需的分支中。当我们等待开发人员将其修复集成到所需的分支中时,这会产生大量开销,并且常常会造成延迟。我正在寻找这个过程的自动化

是否有任何脚本或自动化可以解决此问题?我需要将分支“main”中的所有提交集成到分支“update_1”中。如果存在marge冲突,我们需要标记此提交以供开发人员审查


谢谢

我觉得你目前的做法不错。如果在开发周期中只将热修复提交到
main
,那么在进行热修复后,您应该能够将
main
合并到
update\u 1
。这至少可以避免处理采摘樱桃的问题。合并冲突有时需要手动解决,并且没有解决此问题的灵丹妙药。我们的场景是:假设主分支现在正在生产中。”update_1'分支已从'main'分支出来,开始开发下一个更新。开发人员正在为“更新1”分支签入大量提交。有时,这些提交是针对不能等到下一个版本的高优先级bug的。在这种情况下,我们将提交从“update_1”分支挑选到“main”分支,并将错误修复推送到生产中。当我们准备发布“update_1”时,我们希望从“main”分支到“update_1”分支进行批量集成,以确保当前生产中的所有提交也包含在“update_1”分支中,因此,我们不会丢失当前生产中的任何修复程序。问题在于从“main”到“update_1”分支的批量集成git merge“在这种情况下不起作用,因为在两个分支中选择的修复程序具有不同的SHA哈希。您是否愿意在
main
上重新设置
update_1
,或者这是不可能的?