2016-02-19 24 views
0

我正在用PHP編寫一個Web應用程序,並且希望將其開源。現在我有一個私人的git存儲庫,我不想公開(使用自定義配置,f.e.db登錄憑據)。使用git開源Web應用程序的好方法

什麼是一個乾淨的方式來開源的Web應用程序?有一個特殊的分支與虛擬配置文件(然後我的配置文件也可用?)?或者從opensourced存儲庫分叉?

我想用git跟蹤這兩個(opensourced和配置的回購)。

最佳,JotPe

+0

你好!你的問題與Stack Overflow無關,因爲它不是一個直接的,與編程有關的問題,而是關於許可。您可以在[開源](https://opensource.stackexchange.com)上獲得答案。一定要閱讀他們的主題頁面。 :D – Zizouz212

回答

1

現在我有一個私人的git倉庫,我不想讓公衆(含自定義配置,F.E.數據庫的登錄憑據)。

通常,配置不屬於您的存儲庫。

一種常見的方法是包括配置「模板」等config.ini.template被跟蹤,但要求用戶指出拷貝到config.ini,這是.gitignore d,並加載配置從那裏。

Heroku推廣的另一種方法是load your configuration from environment variables

如果你選擇走下來這兩種路徑的,你應該知道,簡單地用git rm --cached清除它們從你的資料庫移除您的當前跟蹤的文件。先前的提交仍將包含您的數據庫憑證。

您可以使用類似BFGgit filter-branch的內容從存儲庫中清除它們,但這會導致提交被重寫,從而導致嚴重問題,尤其是在共享存儲庫上。除非您完全理解並接受這些含義,否則我不建議您選擇此選項。

我的首選方法是git rm --cached這些文件(或可能是git mv config.ini config.ini.template),將它們添加到您的.gitignore,然後自行更改憑據。

+0

感謝您的回答!正如在12因子App網站上提到的那樣,將配置包含到代碼中是一個壞主意,特別是在多個分支(開發,生產......)中。假設我完全從我的代碼中刪除配置,我如何跟蹤配置(針對我的不同環境(dev,prod,...))? – variables

+0

@JotPe,這取決於你所說的「跟蹤」。你需要它_versioned_嗎?您的需求可能與我的需求不同,但我很少需要這樣做。你是否需要在某處記錄他們?您的存儲庫主機可能有一個可供您使用的wiki。或者您可以使用共享的Google文檔。 – Chris

相關問題