Используем долгоживущие ветки PROD, TEST et DEV.
Следующая версия приложения разрабатывается в DEV, она объединяется в TEST, когда готов к тестированию, и объединяется в PROD после выпуска.
Некоторые коммиты производятся непосредственно в ветке TEST (для исправления ошибок проверяемой версии) и в PROD (для исправления ошибок).
Эти коммиты в PROD и TEST всегда «объединяются» в дочерние ветви (т. Е. PROD объединяются в TEST и DEV; TEST объединяются в DEV).
Время от времени исправление ошибки фиксируется в PROD, затем объединяется в TEST и DEV, а затем выдвигается в начало координат. Но затем в планировании произошли некоторые изменения, и исправление ошибки должно быть частью версии в TEST, а не версии в PROD.
Теперь вот проблема: если я верну коммит в PROD, реверт будет выполнен также в TEST и DEV, когда PROD будет объединен. Как перейти к удалению изменений в PROD и сохранить их в TEST и DEV даже после слияния PROD?
То, что я сейчас делаю, из ТЕСТА:
git merge PROD --no-commit
Это позволяет мне отменить отмененные изменения в PROD до того, как слияние будет зафиксировано в TEST. Затем выполните слияние из TEST в DEV без особых вмешательств.
Если единственный коммит, который должен быть слит с PROD, является обращенным, это приводит к слиянию без файла ... но, тем не менее, это работает.
Так что мне было интересно, если мой подход правильный или есть лучший способ сделать это?