4

我希望在 Github 上发布我的个人网站的公共版本,以便人们可以查看源代码,以便他们了解我的编码风格,帮助改进它或者只是当着我的面嘲笑它。

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

我想克隆现有的 git 存储库,更改我不希望人们看到的内容,然后通过 rebase 将所有提交压缩在一起。但是,我无法从原始存储库中提取任何新更改,这将使公共存储库难以维护。

那么最好的方法是什么?我真的不想改变我原来的回购协议,我不能失去历史。还是有其他聪明的方法可以与人们分享我的资源?

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

4

1 回答 1

4

听起来好像需要进行一些重构,而这种将你的东西放在 git 上的推动可能只是你需要激励并确保公开的东西与应该是私有的东西分开的催化剂。

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

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

最后,一旦你在公共世界和私人世界之间建立了一个清晰的分界点,不仅你的问题会得到解决,你也会感到更有条理,享受认识你的成就感已经打扫了房子。

于 2012-05-17T08:05:25.193 回答