Разрешение конфликтов слияния в запросах на включение - PullRequest
0 голосов
/ 03 мая 2019

Мой обычный способ справиться с конфликтами слияния в запросах на извлечение - это проверить target_branch и вытащить из репо.Затем объедините target_branch с моим feature_branch.Теперь у меня есть конфликты на моем feature_branch, готовые к разрешению, но я также перенес все остальные изменения в target_branch.

Существует ли подход, который извлекает только изменения, вызывающие конфликты, чтобы я не переписывал историю коммитов моих коллег?

1 Ответ

1 голос
/ 03 мая 2019

Обычно я обращаюсь к этому с помощью rebase .Предполагая, что вы начинаете с чего-то вроде:

target_branch  ...--A---B---C---D---E
                         \
feature_branch            F---G

Тогда следующее:

git checkout feature_branch
git rebase target_branch

Результатом будет следующее:

target_branch  ...--A---B---C---D---E
                                     \
feature_branch                        F'--G'

Это имеет два полезныхсвойства для вас:

  1. Ни один из коммитов на target_branch не переписывается, поэтому они сохраняют своих первоначальных авторов;и

  2. Перезапись сначала F (становится F', с новым родителем E вместо B), а затем G (становится G', сновый родитель F' вместо F) позволяет разрешать любые конфликты с C, D и E поэтапно.

В результате получается парафиксирует на feature_branch, что может быть легко применено обратно к target_branch без конфликтов.

Обратите внимание , что, если вы уже нажали feature_branch на пульт, переписывание истории означает, что вам придется принудительно push (в идеале --force-with-lease) эти новыесовершает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...