Как удалить коммиты из ветки только для того, чтобы аккуратно добавить их позже (без конфликтов)? - PullRequest
0 голосов
/ 08 февраля 2019

Допустим, у вас есть репо, в котором есть следующие слияния:

master: -A-B-C-D
feature:    -C-D-E-F

Каков наилучший способ удалить слияния C и D из мастера, а затем объединить их обратно из ветви объектов в мастер?

master: -A-B-
feature:    -C-D-E-F

Изменение должно быть выполнено одним простым запросом (без принудительного нажатия на главную, переименование ветвей и т. Д.) На главную ветвь.

Когда я пытаюсь выполнить следующее:

git checkout master
git checkout -b revert/feature
git revert -m 1 D
git revert -m 1 C

И нажмите на удаленный объект, затем объедините объект обратно к главному, возникнут конфликты слияния, и C и D. будут возвращены.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Если я правильно понял ваш вопрос, вы можете попытаться создать новую ветку из HEAD мастера, а затем добавить свои новые коммиты из функции в эту ветку.

git checkout master
git checkout -b feature_to_push
git cherry-pick hash-of-E
git cherry-pick hash-of-F
0 голосов
/ 08 февраля 2019

Если вы хотите, чтобы возвращенные коммиты вернулись, вам нужно отменить возвращенные коммиты.

git checkout master 
git checkout -b revert/feature 
git revert -m 1 D 
git revert -m 1 C
git checkout -b feature
git revert <git-revert-C-sha>
git revert <git-revert-D-sha>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...