Откат героку не обновил удаленную ветку HEAD, не так ли? - PullRequest
2 голосов
/ 28 марта 2012

Я неправильно сделал push to heroku и использовал откат heroku, чтобы откатить его до предыдущей версии. Это работало хорошо, потому что мое приложение heroku теперь обслуживает откатную версию.

Но когда коллега, который вытащил «поврежденный» толчок, попытался извлечь «правильную» версию после отката, его git checkout из главной ветки дает ему «поврежденную» версию, а не откатную версию.

Есть идеи, почему Heroku откатил приложение, а не мастер-репозиторий?

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

В идеале вы не должны использовать Heroku для размещения своего репозитория Git, но:

Версия, которую использует Heroku и коммит HEAD в репозитории Git, - это две разные вещи.Когда вы нажимаете, это говорит рельсам Heroku скомпилировать HEAD и развернуть его.Когда вы выполняете откат, он говорит рейлганам скомпилировать слаг для предыдущего коммита.Он ничего не делает с репозиторием Git.

Поэтому после отката Heroku запускает HEAD -1, пока репозиторий Git не тронут.

0 голосов
/ 01 декабря 2015
  1. Найдите номер нужной вам версии отката, просмотрев предыдущие версии в терминале.(Значение после n указывает количество записей, которые вы хотите просмотреть. Последние ~ 15 изменений приложения отображаются с помощью "heroku Releases")

    heroku releases -n 7
    
  2. Терминал покажет последнее числозапрошенные версии / выпуски приложений.

    user@computer:~/dev/my-great-app$ heroku releases -n 7
    === my-great-app Releases
    v36  Rollback to v34            email@example.com  2016/12/01 04:49:01 (~ 3h ago)
    v35  Deploy 7234c83             email@example.com  2016/12/01 03:26:58 (~ 5h ago)
    v34  Deploy 1367a4f             email@example.com  2016/11/30 21:25:07 (~ 11h ago)
    v33  Set RAILS_ENV config vars  email@example.com  2016/11/30 13:12:18 (~ 22h ago)
    v32  Deploy 4536b70             email@example.com  2016/11/16 18:16:58
    v31  Deploy 731f37c             email@example.com  2016/10/23 04:33:18
    v30  Deploy 1fb79a6             email@example.com  2016/10/12 04:52:00
    
  3. Выберите развертывание, которое вы хотите получить.(В этом случае я выбрал 1367a4f, потому что v34 была чистой версией приложения.)

    git pull heroku 1367a4f
    
  4. Теперь у вас есть копия приложения из версии отката heroku.Чтобы сохранить эту копию, обязательно создайте для нее ветку в вашей среде git.Если вы абсолютно новичок в этом, вы можете, для спокойствия, скопировать весь каталог и спрятать его где-нибудь, но это не обязательно.(Пожалуйста, не помечайте этот ответ, чтобы предложить резервную копию каталога для тех, кто все еще немного возится с git.)

...