Вы писали:
Если изменения в ветке 'dev_newfeaturename
' более сложны, для сохранения нескольких фиксаций в истории:
- Переключиться на '
dev_newfeaturename
'branch: git checkout dev_newfeaturename
- Реинтегрировать любой измененный код'
master
'в ветку' dev_newfeaturename
': git rebase --interactive master
- Чтобы очистить историю путем объединения фиксаций, измените операциюот «пика» до «сквоша», в результате чего второй коммит попадает в первый
- Переключение на ветку '
master
': git checkout master
- Перемещение изменений в удаленный режим *
master
': git push origin master
Я думаю, что вы забыли о быстром слиянии 'dev_newfeaturename
' в 'master
':
Перебазировка позволяет вам воспроизвести 'dev_newfeaturename
'поверх' master
', очистка коммитов в этом процессе.Это хорошо.
Но если вы хотите отодвинуть мастер назад к удаленному, мастеру нужны эти очищенные коммиты в его истории: `git merge dev_newfeaturename
Относительно ветви на состояние разработки (этап,prod), я бы не рекомендовал такой подход, если вы не производите новые коммиты в этих ветках.
Помните предложение о no-ff в статье, на которую вы ссылаетесь:
Единственное, что осталосьаргументом для –no-ff
является «документация».
Люди могут использовать коммиты слияния для представления последней развернутой версии производственного кода.
Это антипаттерн.Используйте теги .