我錯誤地推動了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