Ускоренное слияние невозможно. Чтобы объединить этот запрос, сначала сделайте ребаз локально - PullRequest
0 голосов
/ 30 октября 2018

Недавно я создал newbranch и создал запрос на слияние с веткой Master. Перед тем, как TeamLead примет запрос на слияние с мастер-веткой, другой член команды зафиксировал другое исправление в той же ветке (newbranch). После этого я зафиксировал свои локальные изменения и перенес изменения в newbranch в локальную ветку. И я подтолкнул свой локальный коммит к newbranch

gitlab error

Мой TeamLead сказал мне перевести мою ветку на более раннюю версию. И разрешать конфликты. Я не знаю, что делать сейчас. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Кажется, что ваш GitLab настроен так, чтобы не позволять ветвям функций с коммитами слияния сливаться в ветку master. Здесь вы ошиблись:

После этого я зафиксировал свои локальные изменения и перенес изменения в newbranch в локальную ветку.

То, что вы должны были сделать, это зафиксировать свою работу, а затем извлечь через rebase из удаленной ветви newbranch. Чтобы исправить ситуацию, я предлагаю обнулить коммит слияния, который произошел, когда вы вытаскивали из GitLab. Вероятно, произошла фиксация слияния, поскольку git pull по умолчанию использует стратегию слияния, а не стратегию ребазирования. Проверьте git log, и посмотрите, сколько коммитов было введено из-за неправильной тяги. Предполагая, что был только один коммит слияния, тогда должно сделать следующее:

git reset --hard HEAD~1

Проверьте еще раз, что git log выглядит правильно. Теперь вы должны увидеть только ваш последний коммит в верхней части ветки. Предполагая, что вы видите это, вы можете сделать это через rebase:

git pull --rebase origin newbranch

Это принесет коммит вашего коллеги, а затем воспроизведет ваш последний коммит в верхней части ветки. Наконец, вы можете вытолкнуть ветку, и проблема должна быть решена:

git push origin newbranch

Обратите внимание, что делать полный сброс, как я уже говорил выше, обычно не очень хорошая вещь. Но в вашем случае никто еще не видел этот коммит слияния, потому что GitLab отклонил вашу попытку подтолкнуть. Так что вы должны быть в безопасности при его удалении.

0 голосов
/ 30 октября 2018

Начиная с вашей новой ветки:

git checkout master чтобы вернуться на главную ветку

git pull origin master, чтобы получить самую последнюю версию главной ветки

git checkout newBranch чтобы вернуться на свой новый филиал

git rebase origin/master -i для выполнения итеративной перебазировки. Команда проведет вас и позволит вам выбрать коммиты, переименовать их, раздавить их и т. Д. Если вы захотите сохранить их все, то произойдет пауза при возникновении конфликтов слияния, а затем вам придется разрешать их в текстовом редакторе. , он скажет вам, где (в вашем текстовом редакторе), что конфликты происходят. Вам нужно будет добавить эти файлы после исправления, а затем выполнить команду git rebase --continue, чтобы продолжить перебазирование.

Когда вы закончите с перебазированием, ваш newBranch будет синхронизирован с master и будет иметь любые коммиты в master, которых не было, когда вы начали свою работу, и все конфликты слияния будут разрешены, так что вы можете легко слить ваш newBranch дюймы

...