У меня есть git timeline, например:
- master
- feature-1 -> merged (to master)
- feature-2 -> merged (tomaster)
- feature-3 -> merged (to master)
Все эти функции выполняются последовательно (первый элемент-1. После его завершения, затем объект-2 и т. д.on).
Feature-2 "конфликтует" с Feature-1.Конфликт не в смысле конфликта мерзавцев, а в особенности.

Теперь клиент решил, что он предпочитает Feature-1, поэтому нам нужно отозвать его обратно.из мертвых.
Какой самый безопасный и эффективный способ создать новую ветвь, которая включает в себя функцию-1 + что-нибудь еще в master (функция-3 в данном случае), исключая функцию-2?
Одна альтернатива, которую я придумаю:
- git checkout feature-1
- git checkout -b yeahbaby
- git merge feature-3
Но тогда вам нужно знать все ветки (в этом случае это просто, только функция-3).Но в действительности у вас их много.
РЕДАКТИРОВАНИЕ: кроме того, это не сработает ... потому что функция-3 основана на мастере, который содержит все изменения, сделанные в функции-2 (котораябыл объединен с мастером).