git - 处理私有(private)和公共(public)存储库的技术?

标签 git version-control github

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

本质上,我试图维护两个版本:

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

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

在我尝试在功能分支之间进行 checkout 之前,这工作得很好:分支可能需要设置文件中的新 key 。由于设置文件被 Git 忽略(以避免推送密码等),站点中断。

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

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

最佳答案

你应该使用 git submodules 与:

  • 所有公共(public)内容的一个模块,可以随意推/pull
  • 一个私有(private)内容模块
  • 一个 super 项目,也在一个私有(private)仓库中,它引用公共(public)和私有(private)子模块。

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

关于git - 处理私有(private)和公共(public)存储库的技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2388854/

相关文章:

ruby-on-rails - 如何将 Capistrano 配置为从本地 Git 存储库部署?

git - 列出 Git 在 a 和 b 之间的提交,仅考虑 b 的第一个 parent 和 a 的第一个 parent

windows - 在 Windows 上的 Mercurial 中更改文件名的大小写

database - 代码控制下数据库脚本的最佳实践是什么

java - 如何使用 EGit 和 Eclipse 将 JavaDoc 从 master 分支移动到 GitHub 上的 gh-pages 分支?

git/github 从 merge 的 pull 请求创建反向补丁

ruby-on-rails - 你如何从 nitrous.io 推送到 GIT

git - 通过cmd更新git?

version-control - Mercurial 钩子(Hook)没有正确执行

Github 工作流程操作仅修改文件