Как получить список конфликтующих файлов перед слиянием?

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

В конце, если все в порядке, он проверит, есть ли конфликт с developи просто вывод yes или же no пользователю. Запрос Pull должен управляться на gitlab, а не на локальном филиале. Так что не должно быть "реального" слияния в местном отделении.

Есть ли какая-нибудь команда git, например git -conflitcs-with-this-branch? И способ извлечь его из nodejs?

Спасибо,

Stéphane.

1 ответ

Решение

Команда, которая находит конфликты слияния git merge, Бежать git mergeопционально с --no-commit и, возможно, на отдельной голове.

Если есть конфликты, git merge выходы с ненулевым статусом. Если нет конфликтов, git merge выходы с нулевым статусом. Если запустить с --no-commit Git не делает коммит в любом случае; если запустить без него, Git делает коммит слияния на текущем HEAD. Если HEAD отключен, этот коммит влияет только на HEAD.

Если вы использовали отсоединенный HEAD, теперь вы можете повторно присоединить HEAD к его исходной ветви или коммиту.

Если вы использовали --no-commit, вы можете просто запустить git merge --abort независимо от того, было ли слияние успешным или неудачным.

Следовательно, самая простая последовательность команд - запустить git merge --no-commit, сохраните статус выхода, затем запустите git merge --abort,

Обратите внимание, что во всех случаях Git будет использовать индекс и рабочее дерево во время процесса слияния, поэтому вы должны убедиться, что они безопасны для использования Git в течение всего этого периода. (В частности, индекс и рабочее дерево должны быть "чистыми" в начале процесса. Они также будут чистыми в конце, при условии, что нет драйверов слияния, которые оставляют беспорядок.)

(Как получить статус выхода из git merge из node.js я понятия не имею.)

Другие вопросы по тегам