GitHub имеет приятный раздел под названием " Работа с ошибками" не-быстрой перемотки вперед ""
Поначалу эта ошибка может быть слишком сильной, не бойтесь.
Проще говоря, git не может сделать изменения на пульте без потери коммитов, поэтому он отклоняет push .
Обычно это вызвано тем, что другой пользователь нажимает на ту же ветку.Вы можете исправить это, извлекая и объединяя удаленную ветвь, или используя pull для одновременного выполнения обоих действий.
В других случаях эта ошибка является результатом деструктивных изменений, внесенных локально, с помощью таких команд, как git commit --amend
или git rebase
.
Хотя вы можете переопределить пульт, добавив --force
к команде push
, делать это следует только в том случае, если вы абсолютно уверены, что это именно то, что вы хотите сделать.
Принудительные нажатия могут вызывать проблемыдля других пользователей, которые загрузили удаленную ветку, и считается плохой практикой. Если есть сомнения, не нажимайте принудительно .
Git не может вносить изменения на пульте, как слияние с ускоренной перемоткой вперед, которое Visual GitСсылка иллюстрирует как:
Это не точно ваш случай, но помогает увидеть, что такое "ускоренная перемотка вперед" (где HEAD
ветви просто перемещаются в новый более поздний коммит).
"branch master->master (non-fast-forward) Already-up-to-date
" обычно используется для локальных ветвей, которые не отслеживают свой удаленный счетчик-part.
См., например, этот вопрос SO " git pull говорит, что он актуален, но git push отклоняет не ускоренную перемотку вперед ".
Или две ветви связаны, но в разногласиис соответствующей историей:
См. " Бесконечная история GIT - что я здесь не так делаю? "
Это означает, что ваша ветка subversion и ваш удаленный мастер gitветви не согласны с чем-либо.
Некоторое изменение было отправлено / зафиксировано для одного, которого нет в другом.2 *, и это должно дать вам ключ к пониманию того, что пошло не так - ищите «вилки» в истории.