Skip to main content

Устранение неполадок с накоплением запросов на вытягивание

Устранение распространенных проблем с запросами на вытягивание с накоплением, включая конфликты перебазировки, заблокированные слияния, прерывания операций и проблемы очереди слияния.

Примечание.

Эта функция доступна в публичном предварительном просмотре и может измениться.

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

Перебаза сообщает о конфликте

Когда каскадная перебаза сталкивается с конфликтом, gh stack rebase останавливается и перечисляет конфликтующие файлы.

Чтобы устранить конфликт и продолжить, выполните следующие действия.

  1. Откройте каждый конфликтный файл и устраните маркеры конфликтов (<<<<<<<, =======, >>>>>>>).

  2. Этап разрешенных файлов.

    git add .
    
  3. Продолжайте перебазу. Остальные ветви перебазируются автоматически.

    gh stack rebase --continue
    

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

gh stack rebase --abort

Синхронизация остановлена из-за конфликта

Если во время выполнения gh stack syncобнаружен конфликт, все ветви восстанавливаются в исходном состоянии, поэтому ничего не осталось частично обновленным. Интерактивное разрешение конфликта путем запуска повторной базы, а затем отправки обновленных ветвей.

gh stack rebase
gh stack push

Сеанс изменения не запускается

gh stack modify требует чистого начального состояния. Если он не начнется, убедитесь, что:

  • У вас есть активный стек.
  • Рабочее дерево чисто.
  • Перебаза не выполняется.
  • Запрос на вытягивание не помещается в очередь для слияния.
  • Журнал фиксаций является линейным. Если это не так, запустите gh stack rebase сначала.

Сеанс изменения был прерван

Например, если gh stack modify конфликт не требуется устранить или сбой терминала, можно восстановить стек до состояния, в который он был запущен. Предварительно измененный моментальный снимок кэшируется локально для восстановления.

gh stack modify --abort

Если конфликт произошел при применении изменений, и вы хотите продолжить, устраните конфликт, настроите файлы с git addпомощью , а затем запустите gh stack modify --continue.

Не удается объединить запрос на вытягивание

Запрос на вытягивание в стеке может объединяться только при выполнении каждого запроса на вытягивание под ним, соответствует всем требованиям слияния, а стек имеет полностью линейную историю. Если слияние заблокировано, убедитесь, что:

  • Запрос на вытягивание и все запросы на вытягивание ниже имеют необходимые проверки и передачу проверок.
  • Стек содержит линейную историю. Если изменения были перенесены на нижнюю ветвь или магистраль перемещены вперед, история больше не может быть линейной.

Чтобы восстановить линейную историю, запустите gh stack rebase и нажмите gh stack pushкнопку "Перебазировать" в поле слияния. Инструкции см. в разделе Управление запросами на вытягивание с накоплением.

Слияние остановлено частично через стек

Предварительные проверки слияния выполняются до любого слияния, но слияние по-прежнему может завершиться ошибкой. Например, из-за непредвиденных конфликтов или периодических сбоев. Если сбой происходит частично, слияние останавливается при этом запросе на вытягивание.

  • Запросы на вытягивание под ним, которые успешно объединены, остаются на базовой ветви.
  • Неудачный запрос на вытягивание и запросы на вытягивание, указанные выше, остаются открытыми.

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

Запрос на вытягивание был удален из очереди слияния

Стеки хранятся вместе в очереди слияния. Если запрос на вытягивание удаляется или удаляется из очереди, все запросы на вытягивание над ним в стеке также удаляются и удаляются. Повторно добавьте стек в очередь после устранения базовой проблемы.

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

Вы закрыли запрос на вытягивание в середине стека

Закрытие запроса на вытягивание в середине стека блокирует все запросы на вытягивание над ним от слияния. Связь стека сохраняется, поэтому для открытия другого запроса на вытягивание или изменения структуры стека необходимо сначала растворить стек, а затем повторно создать его.

Вы можете отменить запись с GitHub веб-сайта или изменить структуру стека с gh stack modifyпомощью. Отмена взлома удаляет только открытые, черновики и закрытые запросы на вытягивание; Объединенные и очередные запросы на вытягивание остаются в стеке. См. Управление запросами на вытягивание с накоплением и Управление запросами на вытягивание с накоплением.

Фиксации не подписываются после перебазы

Перебаза, активируется из запроса на вытягивание на GitHubсерверах, и эти фиксации не подписаны. Если для репозитория требуются подписанные фиксации, перебазируйте GitHub CLI его.

  • При выполнении gh stack rebase используются локальные операции Git, поэтому созданные фиксации соответствуют конфигурации подписи локальной фиксации Git.
  • После повторной шины отправьте обновленные ветви с gh stack pushпомощью .

Невозможно создать стек между вилками

Запросы на вытягивание с накоплением требуют наличия всех ветвей в одном репозитории. Кросс-форковые стеки не поддерживаются.