Как объединить удаленные изменения в GitHub?
Я получаю следующую ошибку: сначала попробую нажать Github:
[rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]: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.
как я могу исправить это и объединить удаленные изменения?
Ответы
Ответ 1
Подробнее см. раздел "непереходный вперед" git push --help '.
Вы можете выполнить "git pull", разрешить потенциальные конфликты и "git нажать" результат. "git pull" создаст слияние C между фиксациями A и B.
В качестве альтернативы вы можете изменить свое изменение между X и B поверх A, с помощью "git pull --rebase" и вернуть результат назад. Бабас создаст новую фиксацию D, которая строит изменение между X и B поверх A.
Ответ 2
Вы также можете принудительно нажать, добавив символ + перед именем вашей ветки.
git push origin +some_branch
Ответ 3
Вероятно, у вас есть изменения в github, которые вы никогда не сливали. Попробуйте git pull
извлечь и объединить изменения, тогда вы сможете нажать. Извините, если я неправильно понял ваш вопрос.
Ответ 4
Если вы "git pull" и в нем говорится "Уже обновлено". И все равно получите эту ошибку, возможно, это связано с тем, что один из ваших других веток не обновляется. Попробуйте переключиться на другую ветку и убедитесь, что она также обновлена, прежде чем пытаться "git нажать" еще раз:
Переключитесь на ветку "foo" и обновите ее:
$ git checkout foo
$ git pull
Вы можете увидеть ветки, которые у вас есть, выдав команду:
$ git branch
Ответ 5
Вы можете заставить его нажать, но, пожалуйста, сделайте это ТОЛЬКО, когда вы совершенно уверены, что делаете.
Команда:
git push -f
Ответ 6
Эта проблема также может возникать, когда у вас конфликтующие метки. Если ваша локальная версия и удаленная версия используют одно и то же имя тега для разных коммитов, вы можете здесь.
Вы можете решить это, удалив локальный тег:
$ git tag --delete foo_tag
Ответ 7
Когда я получил эту ошибку, я создал резервную копию всей папки проекта. Затем я сделал что-то вроде
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
... в зависимости от вашего имени ветки (если это не мастер).
Тогда я сделал git pull --rebase
. После этого я заменил вытащенные файлы резервными файлами проекта. Теперь я готов снова внести изменения и нажать.