Как временно удалить одно прошлое изменение из основной ветки и слить обратно в будущем? - PullRequest
0 голосов
/ 05 августа 2020

Я ищу лучший способ временно удалить одно прошлое изменение (объединенное из функциональной ветки) из основной ветки, которая уже отправлена ​​на сервер, учитывая, что я не хочу терять эти изменения, поскольку в будущем мы должен объединить их обратно с мастером.

Мы используем 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. Посоветуйте, пожалуйста, какой подход лучше всего использовать для этого?

...