Разрешить конфликт слияния между различными ветвями - PullRequest
0 голосов
/ 05 марта 2020

У моей компании есть такие правила:

  1. Ветвь объекта создается из главной ветки
  2. Как только ветвь функции завершена, мы делаем PR для разработки ветки
  3. После утверждения PR объединение для разработки
  4. После тестирования QA ветвь функций будет объединена обратно с master

Этот поток создал много ненужных конфликтов слияния при попытке сделать PR ( хотя, если с PR с master нет никаких проблем), как мы можем улучшить ситуацию?

Редактировать: Вероятно, моя компания использует разработку на основе транков и использует ветвь разработки только для тестирования новых возможностей (иногда разработано с несколькими ветками от разных разработчиков)

Ответы [ 3 ]

0 голосов
/ 05 марта 2020

Вы можете улучшить эту ситуацию следующим образом:

  • В ветви разработки следует создать функциональную ветвь
  • После слияния любого PR в ветви разработки каждый должен перебазировать свою ветку разработки локально и соответствующие ветви функций.
  • Выполнив два вышеописанных шага, мастер изменяется только после того, как тестирование и разработка QA объединяются с мастер-ветвью.

Дайте мне знать, если я должен объяснить дальше.

.

0 голосов
/ 05 марта 2020

Самая большая часть кода git - это разрешение конфликтов. Чем меньше ваши коммиты и коммиты ваших коллег, тем больше шансов, что git сможет разрешить конфликт автоматически. Очень большие коммиты в основном являются причиной конфликтов.

Рабочий процесс выглядит хорошо для меня и не должен быть root причиной ваших постоянных конфликтов. Даже если я согласен с тем, что ветки функций должны быть отделены от разработки.

0 голосов
/ 05 марта 2020

Мы следуем следующим шагам в нашей компании. Это может быть полезно:

  1. Создание ветви элемента из главного элемента
  2. Завершение работы в ветви элемента
  3. Слияние основной ветви с частью элемента, разрешение всех конфликты. Чтобы минимизировать конфликты, вы можете объединять master с вашей веткой раз в день.
  4. После разрешения конфликтов проверьте, все ли работает. Затем вставьте sh в пульт вашей ветки.
  5. Затем вернитесь к мастеру.
  6. Объедините все, от ветви функций до мастера. Поскольку мы уже объединили все, от ветви объектов до главной ветки, слияние функций с главной не должно вызывать никаких конфликтов.

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

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

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