Как я могу обновить мой коммит с последним мастером? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть следующий сценарий, который блокирует меня, чтобы слить мою ветку обратно в master:

  • ветвь объекта, созданная из мастера
  • сделано с веткой функций, и пришло время объединить ее с мастером
  • при слиянии с мастером возникли конфликты
  • исправил все конфликты и подтолкнул к Gerrit
  • тем временем мастер все еще движется, и новый код на мастере конфликтует с моим коммитом слияния

Вопрос в том, как обновить коммит с последним мастером, исправить конфликты и изменить коммит на gerrit?

Попробовал следующее и не удалось:

  • локально слить мастер в этот коммит, но это создаст две коммиты слияния, что плохо
  • не может перебазировать, так как вы не можете перебазировать слияния

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

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

Шаги:

  • Объединить мастер в ветку объектов
  • Разрешение конфликтов
  • Нажмите для просмотра ветки функций
  • Если больше входящих конфликтов, повторите
  • Если нет входящих конфликтов, объединить с мастером и нажать на мастере для просмотра

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


В качестве альтернативы вы можете создать второй коммит слияния.

  • Оформить заказ мастеру
  • Функция слияния с мастером
  • Нажмите для обзора
  • Создаются новые конфликты
  • Опять последний мастер снова
  • Слияние вашего коммита слияния с мастером
  • Нажмите для обзора
  • Теперь отправьте оба изменения вместе

Это будет хорошо работать, если вы отправите изменения вместе со второго слияния

0 голосов
/ 27 марта 2019

Я бы просто использовал git pull master, а затем разрешал конфликты, вручную редактируя необходимые вещи.После этого обычно git add -A и git commit -m "resolved conflicts". Затем вы объединяете его с мастером.Кроме того, вы обычно не делаете ребаз в публичных ветках.

...