Git Cherry-Pick и конфликты
есть две разные ветви git. В одном происходит развитие (Branch1).
в другой ветви происходит работа PoC (Branch2). Теперь я хочу выбрать изменения от Branch1 к Branch2, чтобы Branch2 был обновлен.
теперь, после 4 или 5 изменений cherry-picking, я получаю некоторый конфликт слияния, и я не могу продолжить дальнейшие Cherry-picks.
Do, мне нужно решить все конфликты, прежде чем перейти к следующей вишне - выбрать или как-то отложить разрешение конфликта до тех пор, пока я не выберу все изменения (и разрешу все конфликты вместе)?
далее, в этом случае предлагается сделать вишневый выбор или слияние ветвей?
2 ответов
сделать, мне нужно решить все конфликты прежде чем перейти к следующему cherry-pick
да, по крайней мере, со стандартной настройкой git. Вы не можете выбирать вишни, пока есть конфликты.
кроме того, в целом конфликты сложнее разрешить, чем больше у вас есть, поэтому, как правило, лучше решать их один за другим.
ты can cherry-pick несколько коммитов сразу, что бы сделать то, что вы просите. См., например,как cherry-pick несколько коммитов . Это полезно, если, например, некоторые коммиты отменяют предыдущие коммиты. Тогда вы захотите выбрать все за один раз, поэтому вам не нужно разрешать конфликты для изменений, которые отменяются более поздними коммитами.
далее, предлагается ли сделать вишневый выбор или слияние ветвей в этом кейс?
Как правило, если вы хотите сохранить ветвь функции в актуальном состоянии с основной разработкой, вы просто объединяете master - > особенность ветви. Основное преимущество заключается в том, что более поздняя ветвь функции слияния -> master будет намного менее болезненной.
сбор вишни полезен только в том случае, если необходимо исключить некоторые изменения в master из ветви объектов. Тем не менее, это будет больно, поэтому я постараюсь избежать этого.
прежде чем продолжить:
-
установите правильный mergetool. В Linux я настоятельно рекомендую вам использовать meld:
sudo apt-get install meld
-
настройте свой mergetool:
git config --global merge.tool meld
затем повторите следующим образом:
git cherry-pick ....
git mergetool
git cherry-pick --continue