Я редактировал свои репозитории GIT через Git Online. После того, как я попытался внести изменения в свой локальный код, у меня возникла ошибка:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Как я могу это исправить?
Ответы:
Сначала потяните изменения:
источник
git pull
:? Пульт дистанционного управления равноorigin
, так что на самом деле работает:git pull origin
. Разве не следует обновлять все ветки?Добавьте --force в свою командную строку, если вы уверены, что хотите нажать. Например, используйте
git push origin --force
(я рекомендую командную строку, поскольку вы найдете гораздо больше поддержки от других пользователей с помощью командной строки. Также это может быть невозможно с SmartGit.) См. Этот сайт для получения дополнительной информации: http://help.github.com/ пульты /источник
--force
если вы единственный, кто использует эту ветку. Однако это вызывает проблемы при совместном использовании ветки с другими разработчиками.Перед тем, как нажимать, выполните команду git pull с опцией rebase. Это позволит получить изменения, которые вы внесли онлайн (в своем источнике), и применить их локально, а затем добавить свои локальные изменения поверх них.
Теперь вы можете нажать на удаленный
Для получения дополнительной информации см. Объяснение Git rebase и главу 3.6 Git Branch - Rebasing .
источник
git pull --rebase
заканчиваетсяThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
Я столкнулся с той же ошибкой, просто добавьте в команду "--force" , работает
источник
--force
может быть полезным.У меня была такая же проблема.
Причина в том, что мой локальный филиал каким-то образом потерял отслеживание удаленным аналогом.
После
и разрешив конфликты слияния, я смог подтолкнуть.
источник
Вы можете добавить к команде --force-with-lease , она будет работать.
--force деструктивен, потому что он безоговорочно перезаписывает удаленный репозиторий тем, что у вас есть локально. Но --force-with-lease гарантирует, что вы не перезаписываете чужую работу.
См. Дополнительную информацию здесь .
источник
(Одно) Решение для Netbeans 7.1: попробуйте потянуть. Вероятно, это тоже не удастся. Теперь загляните в журналы (обычно они теперь отображаются в IDE). Есть одна / несколько строк:
"Ошибка извлечения из-за этого файла:"
Найдите этот файл, удалите его (предварительно сделайте резервную копию). Обычно это файл .gitignore, поэтому вы не будете удалять код. Повторите нажатие. Теперь все должно работать нормально.
источник
Использование этой
--rebase
опции сработало для меня.git pull <remote> <branch> --rebase
Потом нажимаем на репо.
git push <remote> <branch>
Например
git pull origin master --rebase
git push origin master
источник
У меня была такая же проблема. Я решил с
источник
checkout
перезапишет эти изменения или, по крайней мере, не будет включать их в push.Это то, что у меня сработало. Его можно найти в документации git здесь
Если вы находитесь в нужной ветке, вы можете сделать это:
источник
Обнаружена та же проблема, чтобы решить ее, выполните следующие
git
команды.git pull {url} --rebase
git push --set-upstream {url} master
Вы должны сначала создать репозиторий на github.
источник
Иногда, когда вы беретесь из своего git, HEAD отсоединяется. Вы можете проверить это, введя команду:
Лучше перейти в свою ветку и по-новому взглянуть на соответствующую ветку.
источник