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-сделано.