2011-05-31 62 views
0

我的Heroku工作流程通常如下:Heroku推錯分支

我在本地保留一個'deploy'分支 - 這是我推送的地方。 如果我需要進行更改,我將從主分支(或者在主分區很小時工作),將更改提交到分支或主分區,然後結帳部署。然後我將更新的分支合併到我的部署分支,並從部署推 - git push heroku master

上週某個時候,這開始打破了我。作爲一個測試,以複製,我做了發出以下

  1. 在我的主分支,我刪除了標識爲應用
  2. 我那麼COMMITED此更改主分支
  3. 我再結賬部署
  4. 我從來沒有合併主
  5. git push heroku master
  6. Logo在heroku應用程序上消失。
  7. master和heroku/master都在同一個提交。

這讓我發瘋。這是我一年多來的工作流程,我從未遇到過這個問題。任何線索?

回答

1

第5步:git push heroku master

你不應該做git push heroku deploy。或者如果你想從deploy在當地推到masterheroku,你必須做git push origin HEAD:master

一般來說,git push origin master將推動與名稱主(主要是refs/heads/master)的Ref。如果你必須推deploy你必須使用git push origin deploygit push origin HEAD

我認爲部署和主人是足夠相同或相似,你以前沒有注意到這一點。

+0

git push heroku deploy會在heroku命名的deploy上創建一個新的分支,heorku會忽略這個分支。 'git push heroku master'指定我推入哪個分支,而不是。 – Jarrett 2011-05-31 21:37:43

+0

@Jarrett如果你想從heroku部署本地到master,你必須做'git push origin HEAD:master'。看到我更新的答案。 – manojlds 2011-05-31 21:42:21

+0

這似乎是我的答案在各種問題中都被低估,沒有任何理由。太糟了!!! – manojlds 2011-06-01 00:46:47

0

你需要做的是讓你的開發分支或分支機構在本地(這可能包括或不包括主)。對於部署w/heroku,您希望將您的部署分支推送到heroku上的遠程主服務器。

git push -u heroku +deploy:master 

從現在開始,你要部署每次,所有你需要做的是

git push heroku 

它只會把你的部署分支,因爲這是你設置推送到Heroku的遙控器。

希望這會有所幫助。