2012-03-27 47 views
1

我错误地推动了heroku,并使用了heroku回滚将其滚回到以前的版本。这工作得很好,我的heroku应用程序现在提供回滚版本。heroku回滚没有更新HEAD远程分支,是吗?

但是,当一个拉过“损坏”推的同事在回滚后试图检出“正确”版本时,他的主分支git checkout给了他“损坏”版本而不是回滚版本。

任何想法为什么Heroku回滚应用程序,但不是主git回购?

回答

3

理想情况下,你不应该使用Heroku的托管您的Git回购,但:

是Heroku上运行的版本和头部的Git的回购承诺是两回事。当你按下时,它会告诉Heroku轨道编译HEAD并进行部署。当你回滚它时,它会告诉轨道枪编译前一次提交的slu g。它不会对Git回购做任何事情。

因此,在回滚之后,Heroku运行HEAD -1,而Git回购未触及。

+0

同意。我在回滚之后尝试过'git pull heroku ',我得到的代码与之前一样。 回滚后,heroku HEAD如何更新,以便我可以将它拉到本地? – 2016-05-19 14:46:50

0
  1. 通过在终端中查看以前的版本,找到您之后的回滚版本号。

    heroku releases -n 7 
    
  2. (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 
    
  3. 选择您想要的部署。 (在这种情况下,我选择了1367a4f因为V34是应用的干净的版本。)

    git pull heroku 1367a4f 
    
  4. 您现在已经从Heroku的回滚版本的应用程序的副本。要保存此副本,请确保在您的git环境中为其创建分支。如果你在这方面已经死气沉沉,那么为了安心,你可以复制整个目录并将其保存在某个地方,但这不是必需的。 (请不要将这个答案标记为暗示那些仍然用git摸索一下的目录备份。)

相关问题