Мне не совсем ясно, использовали ли вы git fetch
, чтобы получить все свои и их коммиты, чтобы все вокруг было актуально, запускали git merge
локально, разрешали все конфликты и зафиксировано локально или нет.
Если вы сделали все это сделали, ошибка просто означает, что после того, как вы запустили процесс слияния, репозиторий GitHub, где вы получили самые последние коммиты от, получили еще более поздние коммиты. Теперь вы должны повторить часть работы, которую вы только что сделали. Вы можете сохранить сделанное вами слияние и его решения или просто начать заново. Если вы начнете все сначала, вам, как правило, придется заново принять все принятые вами решения, что часто бывает довольно болезненно, и, конечно, если это займет некоторое время, эта ситуация может легко повториться: хранилище Git Вы получаете коммиты, а затем объединяете свой PR с движущейся целью, и вы должны закончить sh всю свою работу, прежде чем она снова начнет двигаться.
Если вы не сделать все это, тогда проблема в том, что вы не сделали все это. Всегда проверяйте, что ваш собственный Git репозиторий имеет все коммитов, которые есть у их репозитория при запуске: обновите свой Git репозиторий с помощью:
git fetch origin
и используйте git log --all --decorate --oneline --graph
или графический Git браузер (gitk
или любой другой), чтобы увидеть, как ваши имена филиалов теперь складываются с вашими удаленными слежениями (origin/*
) именами. Убедитесь, что ваш master
соответствует их master
. Получите коммиты для слияния из репозитория GitHub, используя git fetch refs/pull/<em>number</em>/head:to-merge
или аналогичный. (Возможно, вы захотите создать ветку pr-<em>number</em>
или pr/<em>number</em>
локально для более или менее одновременной обработки нескольких запросов извлечения.)
Не все это действительно очень хорошо описано на страницы помощи GitHub, на мой взгляд, но создание правильного фона и его правильное описание требует много слов и примеров.