2013-09-29 89 views
10

我們正在嘗試首次將大型Rails項目部署到Heroku,但在Heroku編譯過程中出現了一些問題,我們有no way of knowing what如何將舊提交部署到Heroku

所以現在我們打算計劃B,它將逐步完成提交鏈並測試對抗Heroku的每個步驟,直到我們找出它在哪一點變得不可編譯。 (是的,這是最好的,我可以拿出在這一點上。)

所以我想我只是在本地克隆項目,簽出一些舊的提交,並推向heroku。但後來我發現,如果我從主人身上推動heroku,它不會構建應用程序?相反,它說:「推到非主分支,跳過構建。」

所以現在即使我的壞計劃是一個非首發。我只是在這裏尋找休息時間。任何想法如何做即時通訊試圖做什麼?

回答

11

這不,如果你從主推是Heroku的唯一版本,而如果你把主的Heroku纔會建立。如果你只是做

git push heroku 

那麼你可能推動本地分行與一個Heroku上相同的名字(確切的默認行爲是可配置的)。你可以從不同的地方分支Heroku的主推與

git push heroku my_local_branch:master 

,或者,如果你已經簽出的my_local_branch你可以使用

git push heroku HEAD:master 

documentation for git push - 實例向特別結束可能有幫助。

你可能還需要使用-f強制推送:

git push -f heroku my_local_branch:master 
+0

真棒@ matt-正是我所需要的。我剛剛在[heroku文檔](https://devcenter.heroku.com/articles/multiple-environments#advanced-linking-local-branches-to-remote-apps)中找到了這個描述。問題:爲什麼我需要'-f'的力量? – Yarin

+0

@Yarin如果你試圖推送一個早於'master'的東西,git通常會阻止你。你需要用'-f'來表示「是的,我的意思是覆蓋(可能會丟失)以後的提交」。 – matt

+0

明白了,謝謝 – Yarin

12

這是一個更容易與Heroku的,而不是在代碼檢查的多步git的過程中達到預期的結果,而推它。這可以讓你的git歷史保持清潔。

$ heroku releases 
$ heroku rollback v11 
+0

請說明爲什麼這是一個更好的解決方案 – StormeHawke

+2

我想問的是,如何部署從未推送到heroku遙控器的提交。您正在給出如何回滾到已經部署到Heroku的提交的解決方案 – AzaFromKaza