我们一直在为我们的iOS项目快乐地使用git flow。但是,今天我发现了一些事情,这意味着我们实际上并没有遵循git flow规范。
当我们开始对发布版进行最终测试时,我们会向组织内的数百人发布BETA版本。现在,这个BETA基本上是一个候选发布者,因为没有发现其他错误,在这种情况下,它已准备好发布App Store。由于有7天以上的审核时间,我们总是将此BETA上传到iTunes Connect并将其设置为等待审核。
我们在发布分支中合并后,从主分支上的标记释放此BETA。但是,git flow规定主分支必须反映当前正在生产的内容。现在,总是有一段等待时间,直到它实际投入生产(因此我们无法打破git flow模型),但如果在此BETA中发现严重错误,我们会将其从评论中删除队列意味着它不会被释放,现在最新的关于master的提交并没有反映出将要生产什么。
您如何在工作流程中解决这个问题?
答案 0 :(得分:9)
我们在发布分支中合并后,从主分支上的标记释放此BETA。 但是,git flow规定主分支必须反映当前正在生产的内容。
那么,如果BETA目前尚未投入生产,为什么还要这样做呢? :)
我的意思是,release
分支正是为了跟踪发布候选者在评估过程中的生命周期,无论这是否意味着内部测试,beta用户测试,或者为什么不,App Store审核流程。
因此,我建议您在BETA的整个生命周期内保持release
分支,并从那里构建提交到App Store的版本:
release
分支重新提交新候选人。release
分支(将所有更改合并到master
和develop
)并在App Store上进行实时设置。