Git push reject: ошибка: не удалось нажать несколько ссылок

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

 git reset --hard 41651df8fc9

Я внес некоторые изменения, я сделал некоторые коммиты и теперь, когда я пытаюсь вытолкнуть все эти коммиты на сервер, я получаю следующую ошибку:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]'

Git предлагает сделать git pull и что другие люди предложили другим пользователям. Тем не менее, я считаю, что притяжение git будет объединять мой текущий код с кодом, который мне больше не нужен (пересмотр главы). Как я могу сделать толчок и забыть о версии/ревизиях впереди?

Ответ 1

git push -f, если у вас есть разрешение, но это испортит всех, кто вытащит из этого репо, поэтому будьте осторожны.

Если это отрицается, и у вас есть доступ к серверу, как указано ниже, вы можете разрешить это на сервере с помощью

git config receive.denyNonFastForwards false

Ответ 2

Если вы единственный человек, работающий над проектом, то вы можете сделать это:

 git checkout master
 git push origin +HEAD

Это установит вершину начала/ведущего на тот же фиксатор, что и мастер (, и поэтому удалите фиксации между 41651df и origin/master)

Ответ 3

Просто сделай

git pull origin [branch]

а затем вы сможете нажать.

Если вы совершили ошибку самостоятельно и не нажимали на нее, попробуйте

git pull --rebase origin [branch]

а затем вы сможете нажать.

Ответ 4

'удаленный: ошибка: отказ от быстрого переадресации /head/master (вы должны сначала вытащите)

В этом сообщении говорится, что на сервере есть крючок, который отклоняет быструю перемотку вперед. Да, обычно это не рекомендуется и является хорошим защитником, но поскольку вы единственный, кто его использует, и вы хотите сделать силовое нажатие, обратитесь к администратору репо, чтобы разрешить немедленное нажатие, временно удалив перехватить или дать вам разрешение на крючок для этого.

Ответ 5

Что я сделал для решения проблемы:

git pull origin [branch]
git push origin [branch]

Также убедитесь, что вы указываете на правильную ветвь, запустив:

git remote set-url origin [url]

Ответ 6

Я сделал следующие шаги, чтобы решить проблему. На ветке, которая давала мне ошибку:

  1. git pull origin [branch-name]<current branch>
  2. После вытащил, получил некоторые проблемы слияния, решил их, перенес изменения в ту же ветку.
  3. Создал запрос Pull с выдвинутой веткой... Тада, Мои изменения отражали, все они.

Ответ 7

у меня слежка сработала, просто запускал эти команды одну за другой

git pull -r мастер происхождения

git push -f origin your_branch