处理私有和公共存储库的技术?

时间:2010-03-05 17:59:26

标签: git version-control github

我有一个开源网站。某些内容是“私有”的,例如连接参数,以及开源版本不需要的文件(例如,广告模板)。

基本上我正在尝试维护两个版本:

  • 具有唯一身份的公共网站(广告,Google Analytics帐户,相关论坛的链接等)
  • 用于社区开发的开源版本,没有不必要的依赖关系或品牌

目前,我正在使用 .gitignore 文件来阻止将“私有”内容推送到开源存储库。以及包含在本地找到的模板的帮助程序,但显示开源版本的空框。

这很有效,直到我尝试在功能分支之间签出:分支可能需要设置文件中的新密钥。因为Git忽略了设置文件(为了避免推送密码等),网站会中断。

理想情况下,我想要版本控制设置文件,但是能够告诉Git不要将这些文件推送到远程服务器(Github)。这可能吗?

我应该使用分支来管理不同的网站版本吗?

2 个答案:

答案 0 :(得分:2)

您应该使用 git submodules

  • 所有公共内容的一个模块,可以随意推送/拉出
  • 私人内容的一个模块
  • 一个超级项目,也在私人仓库中,它引用了公共子模块和私有子模块。

一个回购中的分支不是答案,尤其是在处理敏感信息时。

答案 1 :(得分:0)

分支(如你所说),可能是最直接的方法。事实上,这就是他们应该做的事情,即将多个项目/版本彼此分开。