我一直在阅读人们如何放弃
develop
git 分支并在 master
上完成所有工作 - 以及这如何使一切变得更简单。
我试过了:
staging
或 1.2.3
- 触发我的 CI/CD 工具分别生成暂存或生产版本。效果很好......直到需要发布修补程序为止。
假设我准备了一个修补程序并将其合并到 main.c 中。在最后一个稳定版本 (
feat
) 和修补程序 (1.2.3
) 之间会有功能提交 (hotfix
) - 如果我部署最后一个提交,它也将包含所有这些杂项功能:
1.2.3 <-- feat <-- feat <-- feat <--hotfix
那是自找麻烦。
如何在这样的工作流程中处理修补程序?
您的选择是:
使用稍后将丢弃的发布(或修补程序)分支 - 请参阅此处了解详细信息 - https://trunkbaseddevelopment.com/branch-for-release/。请注意,如果您将此作为您的标准模式,并且在您的问题中使用 SemVer,建议的方法是让每个发行分支都有自己的次要分支,以避免版本控制冲突 - 有关详细信息,请参阅我的帖子此处 - https://worklifenotes .com/2019/01/20/semver-in-product-always-keep-separate-product-branch-on-its-own-minor/
按照其他评论中的建议使用功能标志前滚 - 有关详细信息,请参阅我的帖子 - https://worklifenotes.com/2022/11/02/on-feature-flags/
这可能需要了解很多信息,但如果正确采用这些选项,应该足以应对任何现实生活情况。