Подтвердить что ты не робот

Git Черри-Пик и конфликты

Существует два разных ветки git. В одном идет развитие (Branch1).

В другой ветке происходит работа PoC (Branch2). Теперь я хочу, чтобы вишня выбрала изменения из Branch1 в Branch2, так что Branch2 обновлен.

Теперь, после внесения вишни 4 или 5 изменений, я получаю некоторый конфликт слияния, и я не могу продолжить дальнейшие вишневые выборы.

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

Кроме того, предлагается ли в этом случае сделать слияние вишни или ветки?

4b9b3361

Ответ 1

Ну, мне нужно разрешить все конфликты, прежде чем переходить к следующему cherry -pick

Да, по крайней мере, со стандартной установкой git. Вы не можете принимать вишневое дерево, пока есть конфликты.

Кроме того, в общем случае конфликты усложняют решение, чем больше у вас есть, поэтому лучше их решать один за другим.

Тем не менее, вы можете сразу выбрать несколько коммитов, что будет делать то, о чем вы просите. См. Как чересстрочно выбирать несколько коммитов. Это полезно, если, например, некоторые коммиты отменены раньше. Затем вы хотите, чтобы вишневый выбор был за один раз, поэтому вам не нужно разрешать конфликты для изменений, которые были отменены позже, совершается.

Кроме того, предлагается ли сделать слияние вишни или ветки в этом случай?

Как правило, если вы хотите, чтобы ветвь функций обновлялась с главной разработкой, вы просто объединяете ветвь master → feature. Главное преимущество заключается в том, что более поздняя функция слияния → master будет гораздо менее болезненной.

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

Ответ 2

Прежде чем продолжить:

  • Установите правильный mergetool. В Linux я настоятельно рекомендую вам использовать meld:

    sudo apt-get install meld
    
  • Настройте свой mergetool:

    git config --global merge.tool meld
    

Затем выполните итерацию следующим образом:

git cherry-pick ....
git mergetool
git cherry-pick --continue

Ответ 3

Кроме того, чтобы завершить сказанное @claudio, при сборке вишни вы также можете использовать стратегию слияния.

Таким образом, вы можете что-то вроде этого git cherry-pick --strategy=recursive -X theirs commit или git cherry-pick --strategy=recursive -X ours commit