创建私有代码的公共分支,私有推送对公众的更改

时间:2012-05-17 07:46:28

标签: git

我希望在Github上发布我的个人网站的公开版本,以便人们可以查看来源,以便他们能够了解我的编码风格,帮助改进它或者只是在我脸上笑。

问题是,我想过滤掉一些东西。当然,这意味着敏感信息(如数据库密码等),还有我在同一代码库中运行的其他一些东西,但这与他们在前端看到的内容无关。我需要过滤的一件事是我使用的身份验证,包括安全性和许可问题。正如您所看到的,这属于此代码库,但它不是我可以向公众发布的内容。

我想克隆现有的git repo,改变我不希望别人看到的东西,然后通过重新定位将所有提交压缩在一起。但是,我不能从最初的回购中获得任何新的变化,这将使公众回购难以维持。

那么最好的方法是什么?我真的不想改变我的原始回购,我不能失去历史。或者是否有其他一些聪明的方式我可以与人分享我的来源?

编辑:澄清一下,我正在使用FuelPHP框架作为我网站的基础。我正在尝试设置,以便公共仓库是私人仓库的一个分支。我将开发私人来源,然后推向公众回购。在数据库配置文件中,我需要过滤掉的一件事是我使用的身份验证,包括安全性和许可问题。简单地取消跟踪文件没有帮助:您可以轻松恢复到历史记录并重新恢复文件

1 个答案:

答案 0 :(得分:4)

听起来有些重构是有道理的,而这种推动你的东西上git可能只是你需要获得动力的催化剂,并确保公开的东西与应该是私有的东西分开

首先,您提到了数据库密码和其他敏感信息。例如,Wordpress将数据库密码保存在单独的配置文件中。所有用户都下载了相同的Wordpress副本,但每个用户都会生成自己的wp-config.php。考虑重构代码,使其遵循类似的模型,因为维护1个单独的脱节文件比尝试管理多个文件要容易得多。

至于“其他东西”,你并不清楚这究竟意味着什么,但我认为它指的是与你打算分享的项目或项目完全无关的东西。如果情况确实如此,那么也许“其他东西”应该完全保存在一个完全不同的项目中。考虑将您的“其他”项目移动到您网站上的子域名,以便它们实际上是您服务器上的单独网站。您甚至可以将它们提交到您正在使用的任何版本控制系统中的单独存储库。

最后,一旦你在公共世界和私人世界之间创造了明确的分离点,你不仅会解决问题,而且你会感觉更有条理,享受成就感。知道你已经清理了房子。