Обнаружение конфликта при перебазировании git

#git #scripting #git-rebase

#git #сценарии #git-перебазирование

Вопрос:

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

Git-rebase завершается с одинаковым статусом выхода для каждой ошибки, поэтому я не могу использовать его статус выхода для обнаружения конфликта. Каталог с именем rebase-apply создается при конфликтах, но, похоже, это деталь реализации, на которую я не могу полагаться (например, в прошлом у каталога было другое имя).

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

Ответ №1:

Ну, я только что понял, что могу запустить git status --porcelain и проверить, есть ли какой-либо файл с «U» в его статусе.

Ответ №2:

Вместо перебазирования скриптов, script git выбирает все коммиты в диапазоне вместо этого. Это то, что rebase в любом случае делает под капотом. Если есть конфликты, вы можете предпринять соответствующие действия.

Надеюсь, это поможет