Я ищу лучший способ временно удалить одно прошлое изменение (объединенное из функциональной ветки) из основной ветки, которая уже отправлена на сервер, учитывая, что я не хочу терять эти изменения, поскольку в будущем мы должен объединить их обратно с мастером.
Мы используем GIT в качестве инструмента управления версиями. В основном, когда мы работаем над новой функциональностью, следуя приведенному ниже потоку:
- Во-первых, мы создаем новую ветку функции из основной ветки.
- После завершения кодирования функции ветвь (может быть несколько коммитов), выполните перебазирование на мастер и создайте запрос на вытягивание (PR).
- После проверки PR изменения объединяются в мастер.
Ниже снимок взят из основной ветки, которая является результатом этой команды:
git log --graph --decorate --oneline
* e7655f500 Merged PR Z:
|\
| * bc255d318
| * 7d26a7a07
| * a6a46df89
|/
* f1580b24b Merged PR Y:
|\
| * 9363bd302
| * b15ec84dc
| * a37209071
| * 5659763bd
|/
* d9cc23826 Merged PR X:
Я хочу удалить слияния с SHA f1580b24b , поэтому мастер логически должен выглядеть примерно так, как показано ниже (конечно, может быть больше изменений, касающихся возврата или других команд поверх SHA e7655f500 ):
* e7655f500 Merged PR Z:
|\
| * bc255d318
| * 7d26a7a07
| * a6a46df89
|/
* d9cc23826 Merged PR X
I также необходимо где-то сохранить изменения ниже (например, новую ветку функций), чтобы в будущем я мог объединить их обратно в мастер:
* f1580b24b Merged PR Y:
|\
| * 9363bd302
| * b15ec84dc
| * a37209071
| * 5659763bd
|/
Когда-нибудь в будущем мы решим вернуть изменения, которые мы удалили из главная ветка (с тех пор возможно новые слияния с мастером):
* f1580b24b Merged PR Y:
|\
| * 9363bd302
| * b15ec84dc
| * a37209071
| * 5659763bd
|/
* f8655f500 Merged PR A:
|\
| * cd255d318
| * 8e26a7a07
|/
* e7655f500 Merged PR Z:
|\
| * bc255d318
| * 7d26a7a07
| * a6a46df89
|/
* d9cc23826 Merged PR X
Я мог бы использовать git revert в качестве опции и в будущем un-revert it, но не уверен в его влиянии на основную ветку master. Посоветуйте, пожалуйста, какой подход лучше всего использовать для этого?