Git push отклонил "non-fast-forward"
Я довольно новичок в git но в настоящее время он используется для управления нашим кодом в командной среде. У меня были некоторые проблемы с перебазированием, и я исправил их с помощью
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
теперь я хочу нажать мои изменения, и поэтому запускаю следующую команду
$ git push origin feature/my_feature_branch
дает мне следующую ошибку:
To ssh://[email protected]:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]:7999/repo/myproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
что я могу сделать, чтобы избавиться от ошибки?
П. С. : Я избегаю использовать как можно больше.
8 ответов:
похоже, что кто-то нажал новые коммиты между вашими последними
git fetchиgit push. В этом случае вам нужно повторить ваши шаги и перебазироватьmy_feature_branchеще раз.git fetch git rebase feature/my_feature_branch git push origin feature/my_feature_branchпосле
git fetchрекомендую изучить ситуацию сgitk --all.
Вероятно, вы не извлекли удаленные изменения до перебазирования или кто-то нажал новые изменения (в то время как вы перебазировали и пытались нажать). Попробуйте выполнить следующие действия:
#fetching remote 'feature/my_feature_branch' branch to the 'tmp' local branch git fetch origin feature/my_feature_branch:tmp #rebasing on local 'tmp' branch git rebase tmp #pushing local changes to the remote git push origin HEAD:feature/my_feature_branch #removing temporary created 'tmp' branch git branch -D tmp
У меня была эта проблема! Я пробовал: git fetch + git merge, но не решен! Я пробовал: ГИТ тянуть, а также не решается
затем я попробовал это и решил свою проблему (аналогично ответу инженера):
git fetch origin master:tmp git rebase tmp git push origin HEAD:master git branch -D tmp
блокировка записи в общий локальный репозиторий
у меня была эта проблема, и ни один из вышеперечисленных советов не помог мне. Я был в состоянии принести все правильно. Но толчок всегда терпел неудачу. Это был локальный репозиторий, расположенный в каталоге windows, с несколькими клиентами, работающими с ним через драйвер общей папки VMWare. Оказалось, что одна из систем заблокировала Git репозиторий для записи. После остановки соответствующей системы VMWare, которая вызвала блокировку, все было немедленно отремонтировано. Это было почти невозможно понять, какая система вызывает ошибку, поэтому мне пришлось остановить их один за другим, пока это не удалось.
Ну, я использовал совет здесь, и он прикрутил меня, когда он объединил мой локальный код непосредственно в master. .... так что возьмите все это с солью. Мой коллега сказал, что следующее помогло решить проблему, необходимо было переориентировать мою ветку.
git branch --set-upstream-to=origin/feature/my-current-branch feature/my-current-branch
в Eclipse выполните следующие действия:
Git Repositories > Remotes > Origin > щелкните правой кнопкой мыши и скажите fetch
Git Repositories > Remote Tracking > Выберите свою ветку и скажите merge
перейдите в проект, щелкните правой кнопкой мыши на файле и скажите Fetch from upstream.
Я опоздал на вечеринку, но я нашел некоторые полезные инструкции страница справки github и я хотел бы поделиться ими здесь.
иногда Git не может внести изменения в удаленный репозиторий без потери коммитов. Когда это происходит, ваш толчок отклоняется.
если другой человек нажал на ту же ветку, что и вы, Git не сможет нажать ваши изменения:
$ git push origin master To https://github.com/USERNAME/REPOSITORY.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/USERNAME/REPOSITORY.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.вы можете исправить это путем извлечения и слияния изменений, внесенных на пульте филиал с изменениями, которые вы сделали локально:
$ git fetch origin # Fetches updates made to an online repository $ git merge origin YOUR_BRANCH_NAME # Merges updates made online with your local workили, вы можете просто использовать
git pullдля выполнения обеих команд одновременно:$ git pull origin YOUR_BRANCH_NAME # Grabs online updates and merges them with your local work
Comments