Получение сообщения об ошибке при отправке на github - Обновления были отклонены, потому что за удаленной веткой находится удаленная ветка.
У меня возникла проблема с переносом геройки на другой пульт.
Чтобы проверить себя, я переименовал весь каталог проекта в _backup, а затем:
git clone account/repo_name
git remote add repo2 git@heroku.com:repo2.git
git push repo2 branch_abc:master
Но я все еще получаю
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and merge the remote changes
hint: (e.g. 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Я перепробовал несколько SO вопросов и ответов, но у меня не получилось, но все равно получаю ошибку.
3 ответа
Если вас не волнует, что в данный момент находится в repo2, и вы уверены, что с полной перезаписью все в порядке, вы можете использовать:
$ git push -f git@heroku.com:<heroku repo name>.git
Помните, что хотя push -f
может стереть изменения других разработчиков, если они были опубликованы с момента вашего последнего извлечения из репозитория... поэтому всегда используйте их с особой осторожностью в командах разработчиков!
В этом случае heroku всегда вниз по течению, а github - это то место, где код управляется и поддерживается, поэтому push -f
на героку более безопасный вариант, что иначе было бы.
Я всегда большой поклонник использования git pull --rebase, а затем мастера git push origin. Несколько мест, где я работал, так как во многих местах не разрешается использовать push -f (особенно в тех местах, где используется bitbucket).
git pull --rebase
git push origin master
Ребаз будет применять ваши изменения после уже внесенных изменений на удаленный (веб-сайт онлайн). Это видео буквально рассказывает о вашей проблеме и решает ее с помощью git pull --rebase https://youtu.be/IhkvMPE9Jxs?t=10m36s
Если вы сначала вытяните другой репо:
git pull repo2
Это объединит изменения других репозиториев, которые вы можете добавить и зафиксировать.
Тогда вы можете подтолкнуть репо обратно.