Git конфликты в запросах на включение
У меня 2 филиала - master
а также develop
Я делал несколько запросов на получение в моем develop
филиал, в котором содержится 5 элементов, в котором он равен количеству элементов в master
,
Тем не менее, кто-то сделал некоторые коммиты и pushed
в еще несколько предметов в master
филиал, и, следовательно, теперь он имеет 8 пунктов.
Как моя просьба тянуть в develop
все еще не утвержден / не объединен, когда я пытаюсь обновить свой запрос на получение, я получаю сообщение о том, что This pull request can't be merged. You will need to resolve conflicts to be able to merge
и попросил меня сделать следующее:
git fetch origin master
git checkout develop
git merge FETCH_HEAD
git commit
git push origin HEAD
И это происходит после того, как я "вытолкнул" свои коммиты, что иногда приводило меня в замешательство. Тогда я понял, что он просит меня повторно добавить и повторно зафиксировать в дополнительных 3 новых предметах. Значит ли это, что я должен убедиться, что предметы и содержимое между этими двумя моими ветвями должны быть такими же, как всегда? Я всегда использовал git pull/fetch
но будет ли лучший способ для меня, чтобы убедиться?
2 ответа
Это означает, что GitHub хотел бы объединить вашу PR-ветку в master
, но не может, потому что есть конфликты. Как вы уже обсуждали в комментариях к вопросу, лучший способ справиться с этим (обычно) - объединить master
разветвляться в develop
в командной строке. Это покажет вам конфликты и попросит их разрешить. После того, как вы завершили и нажали это слияние, PR будет объединен обратно в master
используя зеленую кнопку на GitHub.
Вы можете просто объединить deploy
разветвляться в master
(который я понимаю, звучит немного более разумно). В этом случае вы бы полностью обошли пиар. Вы должны закрыть PR "unmerged", и отдельно вы вручную подтолкнете коммит слияния к master
,
Делая это первым способом,
- вы делаете лучший контрольный журнал, объединяясь с мастером на GitHub, используя PR;
- вы даете своей команде возможность просмотреть ваш код после слияния, прежде чем он попадет на
master
; а также - Если у вас есть автоматические тесты (такие как Travis CI или CircleCI), которые проверяют PR, вы также даете им возможность запустить объединенный код.
Я решил это с помощью интерфейса eclipse-git, как описано ниже.
1- Сохраняйте все изменения в ветке 'dev' и отправляйте их в git.
2- Извлеките ветку 'master' и внесите все изменения.
3- Перейдите к "представлению Git-репозиториев -> разверните локальную папку", щелкните правой кнопкой мыши на ветке "master" и выберите опцию "merge".
4 - Откроется окно с отображением всех этих конфликтов с красными пятнами в окне "Git staging".
5. Теперь щелкните правой кнопкой мыши каждое красное пятно и выберите "> заменить на git index". это красное пятно исчезнет сейчас.
6. Сделав это для всех красных пятен, совершите слияние с правой стороны кнопки.
7-сделано.