Git push не удалось, " обновления без быстрой перемотки вперед были отклонены"


я редактировал свои репозитории GIT через Git Online. После того, как я попытался нажать мои локальные изменения кода, я получил сообщение об ошибке:

Git push failed, To prevent from losing history, non-fast forward updates were rejected.

Как я могу это исправить?

11 90

11 ответов:

тянуть изменения:

git pull origin branch_name

добавить --force в командной строке, если вы уверены, что хотите нажать. Например, использовать git push origin --force (Я рекомендую в командной строке, как вы найдете гораздо больше поддержки от других пользователей с командной строкой. Также это может быть невозможно с помощью SmartGit.) См. этот сайт для получения дополнительной информации: http://help.github.com/remotes/

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

git pull --rebase

теперь, вы можете нажать на пульт

git push 

для получения дополнительной информации взгляните на git rebase объяснил и Глава 3.6 Git Ветвление-Перебазирование.

я столкнулся с той же ошибкой, просто добавьте "-- force" к команде, она работает

git push origin master --force

У меня была такая же проблема.
Причина была в том, что мой местный филиал каким-то образом потерял отслеживание до удаленного аналога.

после

git branch branch_name --set-upstream-to=origin/branch_name
git pull

и разрешая сливающиеся конфликты, я смог нажать.

вы можете добавить -- force-with-lease к команде, она будет работать.

git push --force-with-lease

-- force разрушительно, потому что он безоговорочно перезаписывает удаленный репозиторий с тем, что у вас есть локально. Но -- force-with-lease убедитесь, что вы не перезаписываете чужую работу.

Посмотреть подробнее здесь.

(одно) решение для Netbeans 7.1: попробуйте потянуть. Это, вероятно, также не удастся. Теперь загляните в журналы (они обычно отображаются сейчас в IDE). Есть еще одна / несколько строк, говорящих:

"вытащить не удалось, из-за этого файла:"

поиск этого файла, удалите его (сделайте резервную копию). Обычно это А.gitignore файл, так что вы не будете удалять код. Повторите толчок. Все должно работать нормально.

У меня была такая же проблема. Я решил с

git checkout <name branch>
git pull origin <name branch>
git push origin <name branch>

Это то, что работал для меня. Его можно найти в документации git здесь

Если вы находитесь на нужной ветке вы можете сделать это:

git fetch origin
# Fetches updates made to an online repository
git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work

столкнулся с той же проблемой, чтобы ее решить, выполните следующее git команды.

  • git pull {url} --rebase
  • git push --set-upstream {url} master

сначала вы должны создать репозиторий на github.

иногда, принимая тянуть из вашего git, голова отделяется. Вы можете проверить это, введя команду:

git branch 
  • (голова отсоединена от 8790704)

    мастер

    разработки

лучше перейти к вашей ветви и взять свежий тянуть из вашей соответствующей ветви.

git checkout develop

git pull origin develop

git push origin develop