Как объединить удаленные изменения в 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. После этого я заменил вытащенные файлы резервными файлами проекта. Теперь я готов снова внести изменения и нажать.