- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我希望在 Github 上发布我的个人网站的公共(public)版本,以便人们可以查看源代码,从而了解我的编码风格,帮助改进它,或者只是当着我的面 mock 它。
但问题是,我想过滤掉一些东西。当然,这意味着敏感信息(如数据库密码等),还有我在同一代码库中运行的其他一些东西,但这与他们在前端看到的内容无关。我需要过滤掉的一件事是我使用的身份验证,用于安全和许可问题。如您所见,这属于此代码库,但我不能向公众发布。
我想克隆现有的 git 存储库,更改我不希望人们看到的内容,然后通过 rebase 将所有提交压缩在一起。但是,我无法从原始 repo 中提取任何新更改,这将使公共(public) repo 难以维护。
那么最好的方法是什么?我真的不想改变我原来的 repo 协议(protocol),我不能失去历史。还是有其他一些聪明的方法可以与人们分享我的来源?
编辑:澄清一下,我使用 FuelPHP 框架作为我网站的基础。我正在尝试进行设置,以便公共(public) repo 是私有(private) repo 的一个分支。我会开发私有(private)资源,然后推送到公共(public)仓库。在数据库配置文件中,我需要过滤掉的一件事是我使用的身份验证,用于安全和许可问题。简单地取消跟踪文件没有帮助:您可以轻松地恢复到历史记录并再次恢复文件
最佳答案
听起来好像需要进行一些重构,而这种将你的东西放到 git 上的 push 可能只是你需要的催化剂,它可以激发你的动力,并确保将公开的东西与应该私有(private)的东西分开.
首先,您提到了数据库密码和其他敏感信息。例如,Wordpress 将数据库密码保存在单独的配置文件中。所有用户都下载相同的 Wordpress 副本,但每个用户生成自己的 wp-config.php。考虑重构您的代码,使其遵循类似的模型,因为维护 1 个独立的文件比管理多个文件要容易得多。
至于“其他内容”,您并不清楚其确切含义,但我假设它指的是与您打算共享的一个或多个项目完全无关的内容。如果确实如此,那么也许“其他东西”应该完全放在一个完全不同的项目中。考虑将您的“其他”项目移动到您网站上的子域,以便它们实际上是您服务器上的一个单独网站。您甚至可以将它们提交到您正在使用的任何版本控制系统中的单独存储库。
最后,一旦您在公共(public)世界和私有(private)世界之间创建了一个明确的分隔点,您的问题不仅会得到解决,而且您还会感觉更有条理并享受成就感知道你打扫过房子。
关于git - 创建私有(private)代码的公共(public)分支,私有(private)将更改推送给公众,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631753/
我是一名优秀的程序员,十分优秀!