2016-02-19 92 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