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

Git нажать отклоненную "не-быструю перемотку вперед"

Я новичок в 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.

Что я могу сделать, чтобы избавиться от ошибки?

P.S.: Я избегаю использовать параметр --force как можно больше.

4b9b3361

Ответ 1

Похоже, что кто-то нажал новые коммиты между вашими последними git fetch и git push. В этом случае вам нужно еще раз повторить шаги и rebase my_feature_branch.

git fetch
git rebase feature/my_feature_branch
git push origin feature/my_feature_branch

После git fetch я рекомендую изучить ситуацию с gitk --all.

Ответ 2

Вероятно, вы не получили удаленные изменения перед переустановкой, или кто-то нажал новые изменения (в то время как вы переустанавливали и пытались нажать). Выполните следующие действия:

#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

Ответ 3

У меня была эта проблема! Я пробовал: git fetch + git merge, но не решил! Я пробовал: git pull, а также не решил

Затем я попробовал это и решил свою проблему (похож на ответ инженера):

git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp

Ответ 4

У меня была похожая проблема, и я решил ее с помощью: git pull origin

Ответ 5

Я опоздал на вечеринку, но нашел несколько полезных инструкций на странице справки 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

Ответ 6

Записать запись в общий локальный репозиторий

У меня была эта проблема, и ни одна из вышеперечисленных советов мне не помогла. Я смог все правильно взять. Но толчок всегда терпел неудачу. Это локальный репозиторий, расположенный в каталоге Windows с несколькими клиентами, работающими с ним через драйвер общей папки VMWare. Оказалось, что одна из систем заблокировала репозиторий Git для записи. После остановки соответствующей системы VMWare, которая вызвала блокировку, все было немедленно восстановлено. Было почти невозможно выяснить, какая система вызывает ошибку, поэтому мне пришлось останавливать их один за другим, пока не получилось.

Ответ 7

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

 git branch --set-upstream-to=origin/feature/my-current-branch feature/my-current-branch

Ответ 8

В Eclipse сделайте следующее:

GIT Repositories> Remotes> Origin> Щелкните правой кнопкой мыши и скажите "Получить"

Репозитории GIT> Удаленное отслеживание> Выберите свою ветку и произнесите слияние

Перейдите в проект, щелкните правой кнопкой мыши по файлу и скажите "Получить из апстрима".