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

Как сделать исправления с помощью запросов GitHub Pull

Предостережение: я довольно новичок как для git, так и для GitHub.

Итак, в моей текущей настройке моя команда использует исправления git flow (обычно начинаются и заканчиваются графическим инструментом, таким как GitKraken или IntelliJ), чтобы внести изменения, которые необходимо объединить в две ветки и вытолкнуть вверх по течению в обоих. Так, например, поток будет:

  • Перенести последние с мастера
  • Начать исправление
  • Зафиксировать изменения
  • Объединить ветвь исправления в обоих основных и разработать и нажать оба вверх

Теперь мы смотрим на перенос нашего кода в GitHub и хотели бы начать использовать Pull Requests по двум причинам:

  • CI перехватывает тесты и прочее
  • место для размещения комментариев, специфичных для кода, непосредственно не связанных с основной "проблемой"
  • избегая необходимости для всех постоянно привлекать новейших мастеров/разрабатывать их локальную машину, чтобы они могли объединять изменения.

Но в случае с Hotfixes я не уверен, что делать, потому что я объединяюсь в две ветки, но это действительно одно "действие", поэтому вручную создание двух запросов на получение кажется странным, особенно с шага 4) в нашем текущий поток - это один клик.

Есть ли разумный способ справиться с этим? Моим идеальным случаем было бы то, что нажатие кнопки "Слияние" в запросе Pull просто слилось бы в оба, но это не похоже на доступный вариант.

4b9b3361

Ответ 1

Как вы уже упоминали, запрос Pull имеет только одну целевую ветку, поэтому вы не сможете нажать исправление на master и develop, объединив один запрос Pull.

Я также удивлен, что вы упомянули свой шаг № 4 - объединение ветки исправления как с master, так и с develop и push upstream - это одно действие. Хотя существует высокая вероятность, что слияние от hotfix до master не будет работать в конфликтах слиянием, я не могу сказать то же самое для слияния от hotfix до develop, так как он мог бы работать с тех пор, как Последнее развертывание для производства.

Моя рекомендация была бы следующей:

  • Создайте один PR от hotfix до master и попросите его проверить его, чтобы проверить исправление
  • После объединения в master создайте еще один PR от hotfix до develop и посмотрите, запускаете ли вы конфликты слияния
    • Если это так, разрешите конфликты слияния, чтобы PR попал в состояние, подлежащее объединению, и попросите кого-нибудь просмотреть PR
    • Если нет конфликтов слияния, попросите кого-нибудь просмотреть PR

Альтернативное решение, если вы действительно хотите спуститься по автоматическому пути, должно было бы использовать как веб-хосты GitHub, так и API.

Webhook позволит вам быть уведомлен при объединении PR. Вы можете проверить полезную нагрузку, чтобы убедиться, что базовая ветвь начинается с hotfix/, а целевая ветвь - master. Затем вы можете реагировать на это событие, используя API для создать новый PR из той же ветки hotfix до develop.

Это будет связано с некоторой разработкой, и усилия могут быть неоправданными, поскольку создание PR через пользовательский интерфейс все еще довольно просто и быстро.