Не удается нажать на репозиторий Git - PullRequest
16 голосов
/ 29 декабря 2010

Я продолжаю получать это сообщение об ошибке из 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

Отсюда, когда я тяну, ничего не приходит. Когда я нажимаю, я получаю ошибку. Как я могу снова успешно нажать?

Ответы [ 3 ]

6 голосов
/ 29 декабря 2010

Вам нужно иметь общего предка перед нажатием, самый простой способ - сделать git pull (или git pull --rebase, если вы хотите избежать фиксации слияния, и ребаз не является для вас проблемой).

5 голосов
/ 09 мая 2012

У меня была именно эта проблема, это было связано со следующим:

Локальная ветвь на моей машине (с другим источником), которая не была обновлена ​​(и была изменена другим пользователем).Вы должны перейти в ветку, которая не была обновлена ​​(git checkout [ветка в вопросе]) и выполнить git pull.

Это решило мою проблему.В данном конкретном случае из-за этого сообщения

"! [Отклонено] мастер -> мастер (без ускоренной перемотки вперед)!"

Необходимо перейти кОсновная ветвь (git checkout master) выполняет git pull, затем возвращается к любой ветке, с которой вы работаете (git checkout whatBranch), и теперь вы сможете без проблем делать push.

Я не уверен, почему это происходит;может случиться так, что природа git push заключается в проверке всех локальных веток, которые не обновляются должным образом при выполнении push.

4 голосов
/ 10 февраля 2012

Решение вашей проблемы:

  1. «Зафиксируйте» изменения, чтобы они были зафиксированы в вашем локальном хранилище.
  2. Затем «извлеките» код из github / gitserver
  3. Затем «отправьте» код на сервер github / git, и у вас не возникнет никаких проблем.

Подробнее читайте в разделе «Pushing a Branch» в следующем URL:

Работа с «отклонениями без ускоренной перемотки вперед»

Надеюсь, это поможет.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...