Git объединяет больше коммитов, чем должно - PullRequest
0 голосов
/ 31 октября 2019

Я довольно незнаком с git (в основном использую классические команды, такие как checkout, push, pull)

Вот мой gitflow, у меня есть 2 ветки Master и Develop. Я работаю над Develop и затем создаю запрос на слияние от Develop до Master.

Я сделал это на прошлой неделе, и все работало отлично, в то же время я сделал еще 3 коммита (на Develop) итеперь, когда я создаю запрос на слияние, он тянет 5 коммитов (3, которые я сделал, и 2 последнего запроса на слияние). Проблема в том, что это создает конфликт между моими файлами.

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

Редактировать: я только что увидел это сообщение в запросе на слияние "Исходная ветвь N коммитов за целевой ветвью"

Edit2 (пошаговые действия):

  1. Ветвь Master & Develop идентична
  2. Проверка разработки и работа над ней, в результате 2 коммита (commit A & B)
  3. Источник запроса на слияние: Developв цель: Master
  4. Обе ветви идентичны
  5. Проверка разработки и работы над ним, в результате 3 фиксации (commit C, D & E)
  6. Попытка источника запроса на слияние: Развиться в цель: Мастер (что приводит к конфликтам)

/! \ Проблема, при которой 5 коммитов (от A до E) пытаются объединиться с Мастером

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

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

Мое решениеобъединить Master в Develop, чтобы исправить конфликты, а затем объединить Develop в Master.

Источник был простой проблемой конфликта: Как разрешить конфликты слияния в Git

0 голосов
/ 31 октября 2019

Согласно приведенному выше утверждению, мастер более стабилен и наименее обновлен, а разработка - менее стабильная и наиболее обновленная ветвь. (Что является идеальным случаем)

В этом случае, когда push фиксирует ветку Develop иВы должны поднять запрос на извлечение из Разработки до мастера (попробуйте использовать перебазирование при объединении запроса на слияние, который не добавит дополнительную фиксацию). тогда, в этом случае, не будет никакого конфликта, если никакой другой вкладчик не слил изменения в master, если это так, то это может привести к конфликту и потребовать разрешения и передачи в ветку Develop, и ваш запрос на извлечение обновится, и конфликты исчезнут.

Может быть другой случай, когда ваша ветка Develop является веткой по умолчанию (которая ведет себя как master), и вы создали основную ветку (которая ведет себя как Develop) позже в этом случае, если вы вносите изменения в Develop Branch, топри попытке обновить основную ветку через или без PR, он попросит вас разрешить конфликт в обеих ветвях, и если вы попытаетесь это сделать, он снова добавит те же самые коммиты в ветку.

...