Подтвердить что ты не робот

Я не могу нажать git?

git push origin master показывает ошибку

не удалось нажать некоторые ссылки на [email protected]:xyz/abc.git'Чтобы вы не потеряли историю, обновления, отличные от быстрой пересылки, были отклонены Объедините удаленные изменения перед повторным нажатием. См. "Примечание о быстро-вперед 'секции' git push --help 'для деталей.

Что это? Как восстановить это?

4b9b3361

Ответ 1

Обратитесь к разделу "нажатие ветки" на странице справки GitHub:

Работа с ошибками "без перемотки вперед"

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

$ git push origin master
To ../remote/
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to '../remote/'
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.

Эта ошибка может сначала быть подавляющей, не бойтесь.
Проще говоря, git не может внести изменения на пульте дистанционного управления, не теряя фиксации, поэтому он отказывается от нажатия. Обычно это вызвано другим пользователем, нажатием на ту же ветку.
Вы можете исправить это, извлекая и объединяя удаленную ветку, или используя pull для выполнения обоих сразу.

В других случаях эта ошибка является результатом деструктивных изменений, сделанных локально, с помощью команд типа git commit --amend или git rebase.
Хотя вы можете переопределить удаленный доступ, добавив --force к команде push, вы должны сделать это, только если вы абсолютно уверены, что это то, что вы хотите сделать. Силовые нажатия могут вызвать проблемы для других пользователей, которые извлекли удаленную ветвь, и считаются плохой практикой. Когда вы сомневаетесь, не нажимайте.


Подробные сведения о режиме "Заметка о быстрой перемотке вперед" git push, как указано в Майкл Мрозек в комментариях.

Ответ 2

В дополнение к ответу VonC,

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

  $git push --force

сделает.

Ответ 3

Очень важно: это также может произойти, если имя ветки, в которой вы находитесь (и хотите слить), и ветвь вверх по течению - это не то же самое. Тогда рабочий поток может выглядеть так:

git pull --rebase             # to retrieve upstream changes, replay yours on top
git push --dry-run --verbose origin HEAD:master   # always good idea: dry-runs..
git push origin HEAD:master   # actually push current branch head (non-master) to upstream master

Ответ 4

Если вы получаете эту ошибку, и ваш файл .git/config просто отлично, выполните следующие шаги (это обычная проблема с подмодулем в репозиториях git), снова сделайте это из каталога subodule)

  • git мастер проверки
  • git pull
  • (слияние происходит в фоновом режиме)
  • git нажмите

Ответ 5

Сначала нажмите, а затем нажмите

git pull origin any_branch_name

Ответ 6

У меня тоже было это, и я не мог найти нигде в StackOverflow со следующим понятным саморождением: Git не позволит вам нажать на другую ветку, если ваша рабочая ветвь отклонилась от нее. Там легко исправить - просто переключитесь на ветку, на которую вы хотите нажать, и объедините свою рабочую ветвь в нее. Поэтому вместо этого:

git push origin master   <========== On "mybranch"

Сделайте это:

git checkout master      <========== Switch to the branch you want to push to
git pull origin master   <========== Get latest from remote repository
git pull origin mybranch <========== Merge in changes from "mybranch"
======== Resolve any issues ========
git push origin master   <========== Push the merged changes