Как получить список конфликтующих файлов перед слиянием?
Я делаю рутину, которая будет выполняться перед каждым слиянием. Он запустит модульное тестирование и проверит другие конфигурационные файлы. К вашему сведению, это закодировано в узле.
В конце, если все в порядке, он проверит, есть ли конфликт с 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 я понятия не имею.)