我错误地推动了heroku,并使用了heroku回滚将其滚回到以前的版本。这工作得很好,我的heroku应用程序现在提供回滚版本。heroku回滚没有更新HEAD远程分支,是吗?
但是,当一个拉过“损坏”推的同事在回滚后试图检出“正确”版本时,他的主分支git checkout给了他“损坏”版本而不是回滚版本。
任何想法为什么Heroku回滚应用程序,但不是主git回购?
我错误地推动了heroku,并使用了heroku回滚将其滚回到以前的版本。这工作得很好,我的heroku应用程序现在提供回滚版本。heroku回滚没有更新HEAD远程分支,是吗?
但是,当一个拉过“损坏”推的同事在回滚后试图检出“正确”版本时,他的主分支git checkout给了他“损坏”版本而不是回滚版本。
任何想法为什么Heroku回滚应用程序,但不是主git回购?
理想情况下,你不应该使用Heroku的托管您的Git回购,但:
是Heroku上运行的版本和头部的Git的回购承诺是两回事。当你按下时,它会告诉Heroku轨道编译HEAD并进行部署。当你回滚它时,它会告诉轨道枪编译前一次提交的slu g。它不会对Git回购做任何事情。
因此,在回滚之后,Heroku运行HEAD -1,而Git回购未触及。
通过在终端中查看以前的版本,找到您之后的回滚版本号。
heroku releases -n 7
(N后的值表示你想看到的条目的数量。最后〜15的应用程序的编辑与“Heroku的版本”展示)终端将显示应用程序的版本/您的要求发布的最后一个号码。
[email protected]:~/dev/my-great-app$ heroku releases -n 7
=== my-great-app Releases
v36 Rollback to v34 [email protected] 2016/12/01 04:49:01 (~ 3h ago)
v35 Deploy 7234c83 [email protected] 2016/12/01 03:26:58 (~ 5h ago)
v34 Deploy 1367a4f [email protected] 2016/11/30 21:25:07 (~ 11h ago)
v33 Set RAILS_ENV config vars [email protected] 2016/11/30 13:12:18 (~ 22h ago)
v32 Deploy 4536b70 [email protected] 2016/11/16 18:16:58
v31 Deploy 731f37c [email protected] 2016/10/23 04:33:18
v30 Deploy 1fb79a6 [email protected] 2016/10/12 04:52:00
选择您想要的部署。 (在这种情况下,我选择了1367a4f因为V34是应用的干净的版本。)
git pull heroku 1367a4f
您现在已经从Heroku的回滚版本的应用程序的副本。要保存此副本,请确保在您的git环境中为其创建分支。如果你在这方面已经死气沉沉,那么为了安心,你可以复制整个目录并将其保存在某个地方,但这不是必需的。 (请不要将这个答案标记为暗示那些仍然用git摸索一下的目录备份。)
同意。我在回滚之后尝试过'git pull heroku',我得到的代码与之前一样。 回滚后,heroku HEAD如何更新,以便我可以将它拉到本地? –
2016-05-19 14:46:50