Могу ли я отменить изменения, сделанные в другой ветке git? - PullRequest
0 голосов
/ 22 мая 2018

Я работаю над веткой git, которая называется x.Некоторое время назад мне пришлось слить в эту ветку изменения из ветки y.Теперь, когда я закончил свою работу, я хотел бы опубликовать свои изменения из ветки x, поэтому сделайте запрос на слияние.Но функции, которые были сделаны в ветке y, еще не готовы к производству, но они будут включены в мою ветку (но они мне больше не нужны) - есть ли простое решение для "слияния" изменений, которое имеетбыло сделано, когда я слил ветку y в мою ветку?(чтобы они не были включены в MR)

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вы можете создать новую ветвь, которая включает только те изменения, которые вы хотите, и затем создать новый запрос на извлечение из этого:

Допустим, вы хотите создать новую ветку из y, которая возвращается ккоммит 1234 и затем объединить его с x:

git checkout -b new_branch upstream/master
git cherry-pick 1234
git push -u origin new_branch

Затем создайте свой запрос на получение от вашего new_branch до x и т. д.

(я могу неправильно понятьпорядок x -> y или y -> x, но это на самом деле не имеет значения. Идея состоит в том, чтобы создать новую ветвь и выбрать нужные вам изменения)

0 голосов
/ 22 мая 2018

Вы можете отбросить коммиты, которые были объединены из ветви y.Например, используя git rebase:

pick bba85d4 aaaa
d 7355f82 bbbb
d 03cac01 cccc
pick 6f43992 dddd
pick 37eabec eeee

«d» означает, что вы хотите удалить эти два коммита.Теперь сохраните файл и нажмите изменения.

Если вы не хотите переписывать историю, вы можете создать новую ветвь и cherry-pick коммиты, которые вы хотите включить,как предложено в других ответах.

...