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

Отклоненный мастер → мастер (без перемотки вперед)

Я пытаюсь выдвинуть свой проект (все файлы в новом хранилище). Я следую git push -u origin master но когда я нажимаю с помощью git push -u origin master я получаю такую ошибку

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:asantoya/projectnewbies.git'
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.

Я получал эту ошибку много раз и не могу понять, что делать.

4b9b3361

Ответ 1

Как говорится в сообщении об ошибке: git pull перед тем, как вы попытаетесь git push. По-видимому, ваш локальный филиал не синхронизирован с вашей веткой отслеживания.

В зависимости от правил проекта и рабочего процесса вы также можете использовать git pull --rebase.

Ответ 2

ВНИМАНИЕ: Это никогда не рекомендуется использовать Git. Это перезапишет изменения на пульте. Делайте это только в том случае, если вы на 100% знаете, что локальные изменения должны быть переданы на удаленный мастер.

Попробуйте это: git push -f origin master

Ответ 3

эта команда хорошо сработала для меня

git push -f origin master

Ответ 4

Я только что получил эту ошибку.

Я создал репозиторий github после создания моего локального репозитория git, поэтому мне нужно было принять изменения в local, прежде чем нажимать на github. В этом случае единственным изменением был файл readme, созданный как необязательный шаг при создании репозитория github.

git pull https://github.com/*username*/*repository*.git master

URL-адрес репозитория получен отсюда на странице проекта github:

enter image description here

Затем я повторно инициализирован (это может быть не нужно)

git init
git add .
git commit -m "update"

Затем нажмите:

git push

Ответ 5

Я создал новое репо в github, и у меня была та же проблема, но у меня также была проблема при потянув, так что это сработало для меня.

но это не рекомендуется в РЕПО, которые уже имеют много кодов, поскольку это может испортить все

git push origin master --force

Ответ 6

ПРЕДУПРЕЖДЕНИЕ:

Стремление к " git pull " не всегда является решением, так что будьте осторожны. Вы можете столкнуться с этой проблемой (той, которая упоминается в Q), если вы намеренно изменили историю своего хранилища. В этом случае git путает ваши изменения истории с новыми изменениями в вашем удаленном репо. Итак, вы должны пойти на git push --force, потому что вызов git pull git push --force все изменения, которые вы внесли в свою историю.

Ответ 7

Если git pull не помогает, возможно, вы нажали свои изменения (A) и после этого использовали git commit --amend для добавления дополнительных изменений (B). Поэтому git думает, что вы можете потерять историю - он интерпретирует B как другую фиксацию, несмотря на то, что содержит все изменения от A.

             B
            /
        ---X---A

Если никто не изменяет репо после A, вы можете сделать git push --force.

Однако, если после A произошли изменения от другого человека:

             B
            /
        ---X---A---C

то вы должны переустановить, что люди изменяются от A до B (CD).

             B---D
            /
        ---X---A---C

или исправить проблему вручную. Я еще не думал, как это сделать.

Ответ 8

используйте эту команду:

git pull --allow-unrelated-histories <nick name of repository> <branch name>

как:

git pull --allow-unrelated-histories origin master

эта ошибка возникает, когда проекты не имеют общего предка.

Ответ 9

Это потому, что вы сделали некоторые изменения в своем мастере, поэтому проект попросит вас сначала потянуть. Если вы все равно хотите его подтолкнуть, вы можете использовать грубую силу, набрав:

git push -f origin master

Не забудьте сначала зафиксировать ваши изменения:

git add .
git commit -m "Your commit message"

Ответ 10

! [reject] master → master (non-fast-forward)

Не паникуйте, это очень легко исправить. Все, что вам нужно сделать - это вытащить, и ваша ветка будет быстрой перемоткой вперед:

$git pull myrepo master

Затем повторите попытку, и все будет хорошо:

$git нажмите github master

Ответ 12

Это случилось со мной, когда я работал над веткой разработки, а моя главная ветка не была последней версией.

Итак, когда я попытался git нажать с ветки, у меня была эта ошибка.

Я установил его, переключившись на мастер-ветвь, git pull, затем вернитесь назад, чтобы развить ветку и git push.

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git push

Ответ 13

Вам нужно сделать

git branch

если вывод выглядит примерно так:

* (no branch)
master

то do

git checkout master

Удостоверьтесь, что у вас нет ожидающих фиксаций, так как проверка приведет к потере всех незафиксированных изменений.

Ответ 14

У меня была эта проблема на машине разработки. Ветвь dev была нажата, но ветвь master дала мне (пока git push ing, находясь на ветке dev):

! [rejected]        master -> master (non-fast-forward)

Итак, я попробовал:

git checkout master
git pull

Который дал мне:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.

Я узнал, что главная ветка отсутствует в .git/config и добавлена:

[branch "master"]
    remote = origin
    merge = refs/heads/master

Затем git push также отлично работал на ветке dev.

Ответ 15

У меня была такая же проблема. Я использую Git Totoise. Щелкните правой кнопкой мыши → TotoiseGit → Очистить. Теперь вы можете нажать на Github Он отлично работал со мной: D

Ответ 16

Это потому, что вы сделали конфликтующие изменения своему хозяину. И ваш сервер репозитория не может сказать вам, что с этими словами, поэтому он дает эту ошибку, потому что дело не в том, чтобы он справлялся с этими конфликтами для вас, поэтому он просит вас сделать это сам по себе. Как?

1- git pull Это объединит ваш код из вашего репозитория с кодом вашего хозяина сайта. Таким образом, конфликты отображаются.

2- обрабатывать эти конфликты с руководством.

3-

git push origin master

И престо, ваша проблема решена.

Ответ 17

Единственное, с чем я смог решить эту проблему, - удалить локальное и git репо и создать то же самое с обоих концов. Пока работает отлично.

Ответ 18

Мой пульт не был синхронизирован с локальным, так что это сработало для меня

git pull --rebase

и убедитесь, что когда вы делаете git pull снова, он должен сказать "Уже в курсе", и теперь вы готовы перейти к источнику.

при условии, что у вас уже есть git remote add origin remote repository URL

делать

'git push origin master'  

На скриншоте все сказано enter image description here

Ответ 19

Если у кого-то есть эта ошибка при попытке нажать на heroku, тогда просто замените 'origin' на 'heroku' следующим образом: git push -f heroku master