Мы уже долгое время использовали git-поток для наших проектов iOS. Однако сегодня что-то озарило меня, что означает, что мы фактически не следим за спецификацией потока git.Придерживаясь правил потока git, принимая во внимание время просмотра App Store
Когда мы начинаем окончательное тестирование выпуска, мы выпускаем версию BETA для нескольких сотен человек в нашей организации. Теперь эта BETA в основном является кандидатом на выпуск, так как никаких дополнительных ошибок не обнаружено, и в этом случае он готов к выпуску App Store. Так как 7+ дней обзора, мы всегда загружаем эту BETA в iTunes Connect и устанавливаем ее для ожидания.
Мы выпускаем эту BETA из тега на главной ветке после слияния в своей ветви освобождения. Тем не менее, git flow диктует, что главная ветвь должна отражать то, что в настоящее время находится в производстве. Теперь всегда будет время ожидания до тех пор, пока оно фактически не будет произведено (поэтому мы не сможем разбить модель потока git), но если в этой BETA обнаружены серьезные ошибки, мы удалим их из очереди просмотра, что означает, что она не собирается быть выпущенным, и теперь последняя фиксация на хозяине не отражает того, что будет в производстве.
Как вы обходите это в своем рабочем процессе?
Спасибо за ответ. Мы говорим о том, что вы предлагаете, но соблюдение потока git также означает, что я помещаю фиксацию слияния из ветки выпуска в мастер и использую его для сборки сборки сборки, но это коммит не будет фиксацией, из которой производится производство сборка была скомпилирована, так что тег становится спорным. – mattsson
Я использую этот поток для бета-версий и приложений appstore, и он отлично работает. По моему мнению, это должно быть отмечено как правильный ответ для обработки циклов выпуска бета-версии/appstore с git-flow. –
@mattsson Я думаю, что вы слишком «пуристы» в своей интерпретации «придерживаетесь потока git». Имейте в виду, что поток git рождается как практический способ управления выпуском в sw, который распространяется как пакет, и что «объединение слиянием» - это не что иное, как фиксация, указывающая на 2 родителя. Код мудрый, что 'merge commit' в' master' все еще имеет то же самое * содержимое *, что и в ветке 'release'. –