Я использую Git для управления моими двумя компьютерами и моей разработкой. Я пытаюсь внести изменения в GitHub, и я получаю сообщение об ошибке.
Не удалось отправить некоторые ссылки на
<repo>
. Чтобы предотвратить потерю истории, обновления без ускоренной пересылки были отклонены. Объедините удаленные изменения перед повторным нажатием.
Что может быть причиной этого и как я могу это исправить?
РЕДАКТИРОВАТЬ:
Вытягивание репо возвращает следующее:
* ветка master-> master (без ускоренной перемотки вперед) Уже в актуальном состоянии
Нажатие по-прежнему дает мне вышеупомянутую ошибку.
git
version-control
Моше
источник
источник
Ответы:
В GitHub есть хороший раздел под названием « Работа с ошибками, не требующими перемотки вперед »
Git не может вносить изменения на удаленном компьютере, как слияние с перемоткой вперед, которое иллюстрирует справочник по Visual Git :
Это не совсем ваш случай, но помогает понять, что такое «ускоренная перемотка вперед» (где
HEAD
ветвь просто перемещается в новый более поздний коммит).«
branch master->master (non-fast-forward) Already-up-to-date
» Обычно для локальных филиалов, которые не отслеживают свою удаленную коллегу.Посмотрите, например, на этот SO вопрос « git pull говорит, что он актуален, но git push отклоняет не-ускоренную перемотку вперед ».
Или две ветви связаны, но не в соответствии с их историей:
см. « Бесконечная история GIT - что я здесь не так делаю? »
источник
Это означает, что в удаленный репозиторий были переданы другие коммиты, которые отличаются от ваших коммитов. Обычно это можно решить с помощью
прежде чем нажать
В конечном счете, «ускоренная перемотка вперед» означает, что коммиты могут применяться непосредственно поверх рабочего дерева без слияния.
источник
Ускоренное обновление - это то, где единственные изменения, с одной стороны, происходят после самого последнего коммита на другой стороне, поэтому слияния не требуется. Это говорит о том, что вам нужно объединить свои изменения, прежде чем вы сможете нажать.
источник
в этом случае вы можете использовать силу с принудительной операцией
git push origin master --force
источник
Никогда не делай,
git -f
чтобы делатьpush
потому что это может привести к последующим катастрофическим последствиям.Вам просто нужно сделать
git pull
из вашего местного филиала.Пример:
а затем сделать
git push
источник
Вам нужно объединить и разрешить,
conflicts locally
прежде чем вы передадите свои изменения в удаленное репо / форк.1) тянуть (извлекать и объединять)
2) Нажмите изменения
Тем не менее, у вас есть быстрый выбор
push
принудительного использования--force
опции, но его следует избегать, так как это может привести к потере изменений или негативно повлиять на других участников.источник