Вернуть локальную кодовую базу в конкретный выпуск Heroku - PullRequest
0 голосов
/ 02 апреля 2019

Я унаследовал кодовую базу и после работы над проектом я понял, что предыдущий разработчик не передавал код в Bitbucket, поэтому моя локальная версия неверна. Поэтому я хочу клонировать конкретный релиз от Heroku.

Как я могу это сделать

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

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

Во-первых, убедитесь, что у вас есть локальный git-пульт для вашего приложения Heroku.Вы можете сделать это, запустив heroku git:remote -a your-app-name из корневого каталога вашего локального приложения.(Подтвердите этот запуск cat .gitconfig.)

Примечание. Важно помнить, что Heroku настоятельно не рекомендует своим пользователям полагаться на репозиторий git, который Heroku размещает для вашего приложения.Это предназначено для использования только для развертывания кода.

Тем не менее, можно git pull из вашего приложения на Heroku.Не зная вашей ситуации полностью, трудно точно знать, какие команды вам дать.Тем не менее, если git pull heroku master приводит к конфликту, вы можете вместо этого принудить git pull к локальной ветви.Таким образом, главная ветвь остается в такте, пока вы все еще можете получить копию кода, работающего на Heroku.

Когда у вас есть код, который в данный момент работает на Heroku, запустите heroku releases -a your-app-name, чтобы получитьсписок самых последних выпусков для вашего приложения.Найдите тот, который вас интересует, и запишите хэш SHA.Это именно тот git-коммит, который вы ищете.

Получив его, вы можете просто использовать git reset --hard abcdef (где abcdef - это SHA, который вы получили из интересующего вас выпуска).

Теперь ваш локальный репозиторий откатывается до конкретного коммита, который вы искали.

0 голосов
/ 02 апреля 2019

Прежде всего, пожалуйста, внимательно посмотрите на свой существующий репозиторий, чтобы увидеть, есть ли на самом деле код.Например, это может быть другая ветка.Вы должны увидеть, какой хеш коммитов был использован для самого последнего коммита с heroku releases или посмотреть на его вкладку «Активность» на веб-панели.

Предполагается, что коммитна самом деле отсутствует, и, поскольку ваше приложение развернуто через git push ¹, вы сможете извлечь данные из Heroku (при условии, что ваш пульт имеет имя heroku):

git fetch heroku

После этого вы сможетесоздайте новую локальную ветвь из этого коммита, например, через

git branch new-branch heroku/master

Пожалуйста, не создавайте привычку к этому :

Git-репозиторий приложения Herokuпредназначен только для целей развертывания.Клонирование из этого хранилища официально не поддерживается как функция и должно использоваться только в качестве крайней меры. Не используйте этот репозиторий в качестве канонического репозитория вашего приложения «origin».Вместо этого используйте свой собственный сервер Git или службу контроля версий, такую ​​как GitHub.


deployment Развертывание GitHub не обновляет Git-репозиторий Heroku.При развертывании через GitHub или Docker вы не сможете получить последний код, используя git fetch.

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