Я получаю следующую ошибку при попытке первого нажатия на Github:
[rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:me/me.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'non-fast forward'
section of 'git push --help' for details.
как я могу исправить это и объединить удаленные изменения?
git pull
, сделайте еще одну фиксацию, и тогда все должно быть хорошоgit checkout other-branch; git pull; git push; git checkout branch-i-was-working-on
.Вы также можете принудительно нажать кнопку, добавив символ + перед именем вашей ветки.
источник
git reset --hard
У вас, вероятно, есть изменения в github, которые вы никогда не объединяли. Попробуйте
git pull
получить и объединить изменения, тогда вы сможете нажать. Извините, если я неправильно понял ваш вопрос.источник
Если вы «git pull» и получаете сообщение «Уже обновлено», но по-прежнему получаете эту ошибку, это может быть связано с тем, что одна из ваших других веток устарела. Попробуйте переключиться на другую ветку и убедитесь, что одна из них также обновлена, прежде чем снова пытаться "git push":
Перейдите в ветку «foo» и обновите ее:
Вы можете увидеть свои ветки, введя команду:
источник
Вы можете заставить его нажимать, но, пожалуйста, делайте это ТОЛЬКО тогда, когда вы совершенно уверены, что делаете.
Команда такая:
источник
Эта проблема также может возникать при наличии конфликтующих тегов. Если ваша локальная и удаленная версии используют одно и то же имя тега для разных коммитов, вы можете оказаться здесь.
Вы можете решить эту проблему, удалив локальный тег:
источник
Когда я получил эту ошибку, я сделал резервную копию всей папки проекта. Затем я сделал что-то вроде
... в зависимости от имени вашей ветки (если она не является главной).
Тогда я сделал
git pull --rebase
. После этого я заменил извлеченные файлы файлами моего проекта из резервной копии. Теперь я готов снова зафиксировать свои изменения и нажать.источник
1) Принудительное вытягивание для перезаписи локальных изменений
Если вас не интересуют изменения, вносимые локально, и вы хотите получить код из репозитория, вы можете принудительно выполнить извлечение. Это перезапишет все локальные изменения, сделанные на вашем компьютере, появится дублирующая копия версии в репозитории.
Выполните следующие команды в своей среде IDE:
Это мгновенно уничтожит все ваши локальные изменения, поэтому убедитесь, что вы знаете, что делаете, и не нуждаетесь в ваших локальных изменениях.
2) Сохранение обоих изменений (локальных и репо)
Если вы хотите сохранить оба изменения (изменения, сделанные локально, и изменения, присутствующие в репозитории), вы можете добавить и зафиксировать свои изменения. Когда вы потянете, очевидно, будет конфликт слияния. Здесь вы можете использовать инструменты в вашей среде IDE (такие как Difftool и mergetool), чтобы сравнить два фрагмента кода и определить, какие изменения следует сохранить, а какие удалить. Это средний путь; никакие изменения не будут потеряны, пока вы не удалите их вручную.
источник