2013-08-12 63 views
4

我有一個git repo,用於開發我的應用程序,現在我想部署到Heroku。不過,我不想部署這個回購本身,而是在這個回購中的代碼構建。我的構建系統在我的repo目錄中創建一個dist目錄,其中包含在任何位置部署所需的所有內容。它被設置爲在.gitignore中被忽略,因爲它不需要存儲它,因爲它可以在任何時候重建,並且是多餘的。然而,Heroku需要一個git倉庫來進行部署。我可以手動將dist中的輸出複製到其他回購商品,我只是爲了Heroku而存在,但這看起來確實很難看。我希望能夠開發源代碼,構建部署代碼,並且將前者推送到GitHub/Lab,後者則可以無重疊地推送到Heroku。如何在開發Git倉庫中保留Heroku的部署倉庫並保持它們的獨立性?

我想要的是這樣的:我的dist文件夾是它自己的git回購,以滿足Heroku,這是不包括在父dev的歷史,即當我推動我的dev回購GitHub或GitLab ,dist文件夾將被忽略。當我將dist的內容推送到Heroku時,它不知道它包含在開發項目中。這樣,我的構建過程會自動更改我的部署回購,我可以在必要時進行提交以標記部署事件。

我不確定的是如何設置它,如果可能的話。我聽說過有關子模塊的可怕事情,我甚至不確定這是否適合這項工作,因爲它似乎更多地涉及到我的其他外部回購。在這裏,我想創建一個僅存在於我的父回購庫中的回購。

如果有其他人有類似的設置,知道比我所要求的更好的東西,我會接受想法。

回答

4

我會創建一個名爲「DIST」另一個分支:

git checkout -b 'dist' 

這裏面分支我會改變gitignore文件,以便包含在「DIST」文件夾。

我然後把我的DIST分支的Heroku像這樣:

git push heroku dist:master 

這是否對你的工作?

+0

我會給你一個鏡頭,看看它是如何工作的。我會看看我是否無法建立某種永久合併策略來防止.gitignore發生變化。 – neverfox

+0

這麼好的答案..太棒了! –

+0

我在這個//新分支上構建了一個完整的自動化過程,構建dist,commit,push,然後刪除分支.. so rad –