Я новичок, git
но в настоящее время использую его для управления нашим кодом в командной среде. У меня были проблемы с перебазированием, и я исправил их, используя
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Теперь я хочу отправить свои изменения и запустить следующую команду
$ git push origin feature/my_feature_branch
дает мне следующую ошибку:
To ssh://git@coderepo.com:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://git@coderepo.com: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.
Что делать, чтобы избавиться от ошибки?
PS: Я стараюсь --force
максимально избегать использования этой опции.
Ответы:
Похоже, что кто-то вставил новые коммиты между вашими предыдущими
git fetch
иgit push
. В этом случае вам нужно повторить эти шаги иmy_feature_branch
еще раз переустановить .После
git fetch
рекомендую ознакомиться с ситуацией сgitk --all
.источник
Вероятно, вы не получили удаленные изменения до перезагрузки или кто-то отправил новые изменения (пока вы выполняли перезагрузку и пытались отправить). Попробуйте следующие шаги:
источник
У меня была такая проблема! Я пробовал: git fetch + git merge, но не решил! Я пробовал: git pull, но тоже не решил
Затем я попробовал это и решил свою проблему (аналогично ответу инженера):
источник
У меня была аналогичная проблема, и я решил ее:
git pull origin
источник
Я опаздываю на вечеринку, но я нашел несколько полезных инструкций на странице справки github и хотел бы поделиться ими здесь.
Иногда Git не может внести изменения в удаленный репозиторий без потери коммитов. Когда это произойдет, ваш толчок будет отклонен.
Если другой человек отправил в ту же ветку, что и вы, Git не сможет отправить ваши изменения:
Вы можете исправить это, получив и объединив изменения, сделанные в удаленной ветке, с изменениями, которые вы внесли локально:
Или вы можете просто использовать
git pull
для одновременного выполнения обеих команд:источник
попробуйте эту команду
$ git push -f -u origin <name of branch>
т.е.
$ git push -f -u origin master
источник
Блокировка записи в общем локальном репозитории
У меня была эта проблема, и ни один из вышеперечисленных советов мне не помог. Я смог получить все правильно. Но толкать всегда не удавалось. Это был локальный репозиторий, расположенный в каталоге Windows, и несколько клиентов работали с ним через драйвер общей папки VMWare. Оказалось, что одна из систем заблокировала репозиторий Git для записи. После остановки соответствующей системы VMWare, вызвавшей блокировку, все немедленно было восстановлено. Было почти невозможно выяснить, какая система вызывает ошибку, поэтому мне приходилось останавливать их одну за другой, пока не удалось.
источник
Что ж, я воспользовался советом здесь, и это меня обескуражило, поскольку он слил мой локальный код напрямую в master. .... так что относитесь ко всему с недоверием. Мой коллега сказал, что следующее помогло решить проблему, необходимую для перенаправления моей ветки.
источник
В Eclipse сделайте следующее:
GIT Repositories> Remotes> Origin> Щелкните правой кнопкой мыши и произнесите выборку
Репозитории GIT> Удаленное отслеживание> Выберите свою ветку и произнесите слияние
Перейдите в проект, щелкните файл правой кнопкой мыши и произнесите «Извлечь из восходящего потока».
источник
источник
Вот еще одно решение этой проблемы
источник
источник