В 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» Обычно для локальных филиалов, которые не отслеживают свою удаленную коллегу.
Посмотрите, например, на этот SO вопрос « git pull говорит, что он актуален, но git push отклоняет не-ускоренную перемотку вперед ».
Или две ветви связаны, но не в соответствии с их историей:
см. « Бесконечная история GIT - что я здесь не так делаю? »
Это означает, что ваша ветка subversion и ваша удаленная ветка master git ни о чем не договариваются.
Некоторое изменение было перенесено / зафиксировано для одного, которого нет в другом.
Запустите gitk --all, и это должно дать вам ключ к пониманию того, что пошло не так - ищите «вилки» в истории.