使用 Git 保留我的应用程序的公共和私有版本

发布于 2024-09-28 14:34:58 字数 326 浏览 3 评论 0原文

我正在构建一个使用 Git 管理的 Rails 应用程序。一切都很完美,但我想保留一个公共版本和一个私人版本。即:

  • 公共版本用于公共存储库(供人们使用),
  • 私有版本用于我自己的站点。

我们的想法是,两个版本都应该是最新的,不同之处在于我的私人版本的文件包含我的网站的密码,而公共版本则不包含(或包含一些默认值)。

我一直在考虑分支:master(公共版本)和一些私有分支。
但似乎每次提交后我都必须进行大量合并。

请记住,我只是一个要求,因为我仍然是 git 的菜鸟。

谢谢各位!

I am building a Rails app that I manage with Git. All is perfect, but I'd like keep a public version as well as a private one. That is:

  • the public version is for a public repository (for people to use),
  • and the private version is for my own site.

The idea is that both versions should be up-to-date, with the difference that my private version's files contain passwords for my site, and the public version doesn't (or contains some default values as such).

I've been thinking of branches: master (the public version) and some private one.
But it seems that I'd have to do a lot of merging after each commit.

Please, bear in mind, that I am a asking for I am still quite a noob at git.

Thanks folks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难理解 2024-10-05 14:34:58

我进行 Django 开发,并将所有敏感数据保存在一个文件中,并将其放入 .gitignore 中。它不受版本控制,我在部署服务器和本地开发计算机上保留了单独的版本。

I do Django development and keep all my sensitive data inside a single file which I put inside my .gitignore. It's not version controlled and I keep separate versions of this on my deployment server and local dev machine.

如梦亦如幻 2024-10-05 14:34:58

我会:

  • 将密码存储在私人存储库中,该存储库仅包含
  • 公共存储库中的敏感数据存储:
    • 对私有存储库作为子模块的引用(只有您可以签出该子模块,因为它是私有存储库)
    • 一些模板配置
    • 一些脚本能够使用正确的值构建实际的配置文件:
      • 没有子模块时的默认值
      • 密码(如果子模块已签出)。

。这样,就不会进行任何合并,也无法将敏感数据推送到公共存储库。

I would:

  • store the password in a private repo which contains only sensitive data
  • store in the public repo:
    • a reference to the private repo as a submodule (only you could checkout that submodule, since it is a private repo)
    • some template config
    • some script able to build the actual config file with the right value:
      • default value if there is no submodule
      • passwords if the submodule is checked-out.

That way, no merge whatsoever, and no way to push sensitive data to a public repo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文