2010-03-16 88 views
23

有沒有簡單的方法來爲不同的遙控器設置不同的.gitignore文件?我有一個倉庫,我推到了Heroku和Github。我需要Heroku的database.yml,但不希望某些信息被推送到Github。所以我需要爲每個遙控器使用不同的.gitignore文件。有沒有辦法設置遠程特定的.gitignores?

我試過有兩個獨立的分支,一個忽略database.yml,一個沒有。問題是,當我檢出heroku分支並返回到我的github分支時,整個database.yml文件都消失了。

任何提示?

+0

FunkyMunky,你找到一個很好的解決你的問題? – 2011-04-29 07:47:53

回答

5

我對Heroku的要求一無所知 - 希望Justice是正確的,你可以避免這個問題。如果你不能,或者如果別人發現這個誰不能...

如果你想要兩個遙控器是鏡像(具有相同的提交),他們必須按照定義在這些提交中具有相同的文件。因此,您有兩種選擇:在所有存儲庫中都有file-for-repo-B,即使他們不需要它,或者使用具有兩個分支的小雜亂工作流程:masterfor-repo-B。兩個分支之間的唯一區別是觸及file-for-repo-B的承諾;分支for-repo-B將總是從master合併(但從來不是這樣!)。現在你只需要在回購B中籤出一個不同的分支,而且一切都很好。

10

不要將數據庫信息放在database.yml中。相反,使用Heroku環境變量。

+0

此規則適用於任何其他生產環境,而不僅僅是heroku。 – 2016-10-02 17:54:14

1

你應該versionned一個:

  • database.yml與它只有變量和
  • 能夠通過根據如該database.yml部署在遠程服務器上的正確的價值觀,以取代那些變量的腳本。

然後使用腳本作爲smudge attribute filter driver

smudge content filter

每次將籤(並創建一個工作樹)的遠程服務器上,該腳本執行,將改變相應的變量,給你一個自定義的database.yml文件。
如果其中一個遠程不需要該文件,它仍然可以在那裏,但被污跡腳本清空。

相關問題