DevOps Azure - Git Request Pull "Следующие шаги: вручную разрешите эти конфликты и отправьте новые изменения в ветку источника".
Я создал ветку с именем dev.
Я сделал запрос на перенос, чтобы отправить код разработчика, чтобы справиться, когда я сделаю этот запрос на pull, он скажет мне:
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
.