Как перезагрузить приложение Heroku и заново все зафиксировать? - PullRequest
50 голосов
/ 24 мая 2011

Я создаю приложение, которое я также тестирую в Heroku. Сегодня я столкнулся с некоторой проблемой, и мне пришлось откатить один коммит в моем локальном git-репо, но теперь Heroku не распознает мои изменения, сказав, что «все обновлено».

Итак, работает

git push heroku master

heroku отвечает

Everything up-to-date

что не соответствует действительности.

ОБНОВЛЕНИЕ: вещи, которые я пробовал

git push -f heroku master
git push --force heroku master
git push heroku +master
git push --force heroku +master

Внесены некоторые изменения в исходный код, а затем

git add.
git commit -a -m "Message" #(Then this commit shows in my git explorer)
git push heroku master #Everything up-to-date

Ответы [ 9 ]

50 голосов
/ 24 мая 2011

Звучит странно.Может быть, попытка протолкнуть другую ветку подойдет?

git branch production
git checkout production
#do some code changes
git commit -am "some desperate code changes to try fix heroku"
git push heroku production:master

Создание новой производственной ветви - это то, что я хочу, чтобы вы протестировали.Кроме того, приятно иметь производственную ветвь, которую можно использовать для развертывания.

Если это не сработает, то я думаю, что проблема еще глубже и вам нужна помощь от heroku.

РЕДАКТИРОВАТЬ: Добавить heroku релизы аддон тоже.Откат выполняется так же просто, как heroku rollback

44 голосов
/ 24 мая 2011

Это работает не во всех ситуациях, но если ваш локальный репо отклонился от репозитория Heroku так, что git не может понять, как их согласовать - например, если вы перебазировали свой локальный филиал после того, как его подтолкнули кHeroku - вы можете вызвать толчок, поставив знак плюс + перед ссылкой, например:

git push heroku +master

Это может не сработать в вашем случае, но стоит попробовать.

19 голосов
/ 22 ноября 2013

Это сработало для меня (из https://coderwall.com/p/okrlzg):

  1. Выполнить heroku plugins:install https://github.com/lstoll/heroku-repo.git
  2. heroku repo:reset -a APPNAME

Оттуда хранилище git имеетбыл "сброшен". Затем выполните:

  1. git push heroku master -a APPNAME

, чтобы заполнить репозиторий git и повторно развернуть приложение.

8 голосов
/ 24 мая 2011

Предположим, вы откатили один коммит, который вы сделали удаленно, который ранее существовал.Я думаю, что вы должны сделать:

git merge heroku/master

Если вы просто хотите идти вперед

или:

git push --force heroku master

, если вы хотите нажать это изменение

4 голосов
/ 24 мая 2011

Однажды у меня была похожая проблема, и я решил ее, изменив один код в моем коде и снова запустив git add / commit / push.Я думаю, что вы уже попробовали это.

Не ломайте приложение, просто добавьте комментарий к файлу CSS или что-то в этом роде и посмотрите, поможет ли это

удачи

3 голосов
/ 22 сентября 2013

У меня была такая же проблема, и я решил ее

Git push origin HEAD: master

Для тебя

Гит пуш геройку ГОЛОВА: мастер

0 голосов
/ 24 марта 2015

У меня была такая же проблема, и я попробовал все предложения и не помогло.Мне пришлось запускать ресурсы прекомпиляции локально и нажать, хотя я сделал heroku run rake assets:precompile.

rake assets:precompile
git add .
git commit -am "local assets precompile"
git push heroku master
0 голосов
/ 28 февраля 2014

Через некоторое время я решил использовать грабли, как эта deploy.rake

Он стандартизирует и ускоряет развертывание, особенно когда необходимо осуществить миграцию

puts `git push -f git@heroku.com:#{APP}.git #{current_branch}`

Как видите, опция - force (или -f ) используется для любого толчка, чтобы игнорировать любые конфликты с git-репо heroku

Но я не рекомендую его для новичков :)

0 голосов
/ 24 мая 2011

Ваше приложение heroku будет автоматически сброшено при загрузке новой версии (slug), которая загружается.Если ваше приложение изменяется так, что оно не загружается, ваши приложения будут продолжать работать со старой версией.

Другими словами, когда вы развертываете свое приложение, оно загружает слаг (новый исходный код).в новый dyno, и если dyno правильно загружает приложение, он будет заменять текущие dyno, на которых запущено ваше приложение.

Это может быть вашей проблемой, если вы не увидите никаких изменений ...

Если у вас есть журналы от git push heroku, пожалуйста, опубликуйте их.

Редактировать: git reset имеет дело с индексами git, а не с рабочим деревом или текущей ветвью.

Вы должны к нимПроверьте коммит, который вы сбрасываете, чтобы фактически изменить файлы - как это взаимодействует с heroku, я не очень уверен (еще никогда не откатывая развертывание к heroku, скрестив пальцы), но надеюсь, что это поможет.Может быть, попробуйте сделать git push heroku после оформления заказа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...