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,

Делая это первым способом,

  1. вы делаете лучший контрольный журнал, объединяясь с мастером на GitHub, используя PR;
  2. вы даете своей команде возможность просмотреть ваш код после слияния, прежде чем он попадет на master; а также
  3. Если у вас есть автоматические тесты (такие как Travis CI или CircleCI), которые проверяют PR, вы также даете им возможность запустить объединенный код.

Я решил это с помощью интерфейса eclipse-git, как описано ниже.

1- Сохраняйте все изменения в ветке 'dev' и отправляйте их в git.

2- Извлеките ветку 'master' и внесите все изменения.

3- Перейдите к "представлению Git-репозиториев -> разверните локальную папку", щелкните правой кнопкой мыши на ветке "master" и выберите опцию "merge".

4 - Откроется окно с отображением всех этих конфликтов с красными пятнами в окне "Git staging".

5. Теперь щелкните правой кнопкой мыши каждое красное пятно и выберите "> заменить на git index". это красное пятно исчезнет сейчас.

6. Сделав это для всех красных пятен, совершите слияние с правой стороны кнопки.

7-сделано.

Другие вопросы по тегам