DevOps Azure - Git Request Pull "Следующие шаги: вручную разрешите эти конфликты и отправьте новые изменения в ветку источника".

Я создал ветку с именем dev.

Я сделал запрос на перенос, чтобы отправить код разработчика, чтобы справиться, когда я сделаю этот запрос на pull, он скажет мне: enter image description here

50+ конфликты предотвращают автоматическое слияние "Следующие шаги: вручную разрешите эти конфликты и вставьте новые изменения в ветвь источника".

Куда я иду отсюда? Я просто хочу, чтобы все ветки dev заменяли все, что находится на хозяине. Я не вижу вариантов разрешения этих конфликтов.

Ответ 1

Вам нужно будет сделать следующее на вашем ПК

На ветке dev

$ git pull origin master - Это создаст коммит слияния, и вам придется разрешать конфликты в файлах, которые изменяются как на dev, так и на master. git status отобразит список файлов с конфликтующими изменениями.

После разрешения конфликтов, совершите все изменения и принудительно нажмите свою ветку. После этого вы сможете завершить PR.

Справка для получения более подробной информации

Ответ 2

Так как вам нужно сохранить версию файлов в ветке dev (сохранить ветку исходного кода при изменении файлов в master ветке назначения), поэтому вы должны внести изменения в ветку master чтобы разрешить файлы конфликтов, и быть уверенным, что у вас есть разрешение выдвигать изменения в master ветка.

Вы можете использовать следующие параметры:

Вариант 1: объединить напрямую

В вашем локальном репозитории вы можете выполнить следующие команды, чтобы объединить dev с master веткой, сохранив версию файлов конфликтов как ветку dev:

git checkout master
git merge dev -X theirs
git push origin master

И в существующем запросе на создание, который вы создали, он показывает, что ветвь была объединена. Таким образом, вы можете отказаться от запроса извлечения.

Вариант 2: по-прежнему объединять с помощью запроса на удаление (разрешать конфликты в главной ветки)

Вы можете использовать следующие команды для разрешения конфликтов в master ветке:

# In yout local repo
git checkout master
git checkout dev -- .
git commit -m 'replace master branch version by dev for the conflict files'
git push origin master 

В то время как изменения в существующем запросе извлечения не будут обновляться, если новый коммит выдвигается к целевой ветки (master). И вы можете найти аналогичный отчет. Запрос на извлечение не обновляется, когда фиксация из PR объединяется с целью через другую ветвь.

Это означает, что запрос на удаление на веб-странице все еще показывает конфликты. Вы должны отказаться от существующего запроса на включение и повторно активировать (или создать новый), чтобы объединить dev с главной веткой.

Ответ 3

Я должен был сделать rebase. Пришлось пройтись по всем коммитам и применить мои изменения - они были довольно обширные, переименовывали пространства имен и имена методов и т.д. Это позволило мне продолжить выполнять Pull Request на извлечение на портале DevOps Azure. На самом деле, я мог просто обновить изменения для существующего Pull Request на извлечение, и конфликты автоматического слияния были разрешены.

Слияние кода не решило проблему, сработала только rebase.