Ответ 1
У вас должен быть общий предок перед нажатием, самый простой способ - сделать git pull
(или git pull --rebase
, если вы хотите избежать коммандной фиксации, а rebase не является проблемой для вас).
Я продолжаю получать это сообщение об ошибке из git во время нажатия, даже если я пытаюсь это сделать после перетаскивания снова и снова:
! [rejected] master -> master (non-fast-forward) error: failed to push some refs to '[repo url]' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
Вот как выглядит история ветвей:
A---B---C
| |
D E-F
A initial commit (me)
B some commit (me)
C master
D some commit (other dev)
E remotes/origin/master - Merge branch 'master' of [repo url]
F Local uncommitted changes, not checked into an index
Отсюда, когда я тяну, ничего не приходит. Когда я нажимаю, я получаю ошибку. Как я могу успешно нажать еще раз?
У вас должен быть общий предок перед нажатием, самый простой способ - сделать git pull
(или git pull --rebase
, если вы хотите избежать коммандной фиксации, а rebase не является проблемой для вас).
У меня была эта точная проблема, это произошло из-за следующего:
Локальная ветвь моей машины (с разным происхождением), которая не была обновлена (и была изменена другим пользователем). Вы должны перейти в ветку, которая не была обновлена (git checkout [branch in question]) и сделать git pull.
Это решило мою проблему. В этом конкретном случае из-за этого сообщения
"! [reject] master → master (non-fast-forward)!"
Вы должны перейти на главную ветку (git master), сделать git pull, а затем вернуться к любой ветки, на которой вы работаете (git checkout whateverBranch), и теперь вы должны иметь возможность сделать без проблем.
Я не уверен, почему это происходит; может быть, что характер нажатия git заключается в проверке всех локальных ветвей, которые не были должным образом обновлены при нажатии.
Решение вашей проблемы:
Подробнее в разделе "Нажатие ветки" в следующем URL-адресе:
Работа с "немедленными отклонениями вперед"
Надеюсь, что это поможет.
Спасибо