Получение сообщения об ошибке при отправке на 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

Это объединит изменения других репозиториев, которые вы можете добавить и зафиксировать.

Тогда вы можете подтолкнуть репо обратно.

Другие вопросы по тегам