git. Разделить доработку на две ветки
В репозитории git есть основная ветка main, в которой находятся коммиты релизов. Есть ветка разработки task, ответвленная от коммита v1.0.
В ней было изменено два файла: 1.file и 2.file.
Менеджером проекта было принято решение, что в релиз v1.1 войдут изменения только из 1.file, а изменения из 2.file отложены до v1.2.
Если просто в main выполнить git merge --no-commit task и вручную откатить изменения в 2.file перед завершением слияния, то в релизе v1.1 всё будет правильно. Но когда позже при сборке v1.2 будет сделан повторный merge ветки mask в main изменения из 2.file не подтянутся. И конфликта слияния не будет. То есть правка просто потеряется.
Как правильно разделить ветку task на две?
Чтобы при этом:
- Результат последовательного
mergeобеих вmainбыл равен результатуmergeисходной ветки. - Не изменять уже существующие коммиты в ветке
task, так она уже была отправлена на сервер.