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
, но будет ли лучший способ убедиться?
Ответы
Ответ 1
Это означает, что GitHub хотел бы объединить вашу ветвь PR в master
, но она не может, потому что есть конфликты. Как вы обсуждали в комментариях к вопросу, лучшим способом справиться с этим (обычно) является объединение ветки master
в develop
в командной строке. Это покажет вам конфликты и попросит вас их разрешить. После того, как вы закончите и нажали это слияние, PR снова сольется в master
, используя зеленую кнопку на GitHub.
Вы можете просто объединить ветвь deploy
в master
(что я понимаю, звучит немного более разумно). В этом случае вы полностью обходите PR. Вам придется закрыть PR "unmerged", и отдельно вы вручную нажмете фиксацию слияния на master
.
Сделав это первым способом,
- вы делаете лучший контрольный журнал, сливаясь с мастером на GitHub, используя PR;
- вы даете вашей команде возможность просмотреть ваш код после слияния, прежде чем он приземлится на
master
; и
- Если у вас есть автоматические тесты (такие как Travis CI или CircleCI), которые проверяют PR, вы даете им возможность запускать ваш объединенный код.
Ответ 2
Я разрешил его с помощью интерфейса eclipse- git, как описано ниже.
1- Сохраните все изменения в ветке 'dev' и нажмите на git.
2- checkout в ветку master и вытащите все изменения.
3- Перейдите к представлению репозиториев Git → разверните локальную папку и щелкните правой кнопкой мыши по ветке "мастер" и выберите опцию "merge".
4- Он откроет все конфликты с красными пятнами в окне Git staging.
5 Теперь щелкните правой кнопкой мыши по каждому красному пятну и щелкните → 'замените на git index'. что красное пятно исчезнет.
6- сделав это для всего красного пятна, сделайте слияние с правой стороны.
7-сделано.