2012-03-27 64 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摸索一下的目錄備份。)

相關問題