【问题标题】:Selective git ignore by remote?远程选择性git忽略?
【发布时间】:2011-06-14 04:25:02
【问题描述】:

假设我有一个项目,它同时位于公共开源存储库和私人开发存储库中。开发仓库中的一些文件会包含数据库密码等我不想公开的东西。在两个遥控器之间共享安全文件的最佳方式是什么?我正在考虑某种仅适用于公共回购的 .gitignore 文件,这可能吗?如果没有,还有其他建议吗?

【问题讨论】:

标签: git gitignore repository


【解决方案1】:

也许将更敏感的文件放在不同的存储库中,将其子模块到原始存储库中,并且只允许您的私人开发人员访问私有存储库。

【讨论】:

    【解决方案2】:

    如果确实有文件,不应该泄露给公众,为了安全起见,不要将它们放在存储库中,或者使用密码加密文件!

    最好的办法是,当您将未共享的文件放在可以存在于私有开发版本中的单独存储库中时:

    BASE_DIR/.git
    BASE_DIR/private/.git
    

    这里 BASE_DIR 包含所有公共文件。 BASE_DIR/private 包含私有文件。

    当您只发布数据而不是存储库(及其所有历史记录)时,您可以简单地

    git --work-tree=PATH_TO_THE_PUBLIC checkout HEAD -- .
    

    当新版本到来时。

    【讨论】:

      【解决方案3】:

      不要将密码放在源代码控制中,期间。只要.gitignore他们无处不在;通过其他方式分发私人密码文件。

      (不,没有办法只忽略某些存储库中的文件。)

      【讨论】:

      • 这没有帮助。我们需要我们在仓库中的部署配置,以便我们可以根据需要更改它们,每个人都会知道,而且我们的生产环境是基于 git 的,所以部署所需的所有文件都需要在私有仓库中可用。没有理由不应该将这样的私有数据置于私有源代码控制中。
      • @Stephen:问题在于,由于 Git 的运行方式,即使您更改了单个文件,您也会拥有一组完全不同的提交哈希,从而导致完全不同的历史记录。 Git 不会在历史级别区分您的公共存储库和私有存储库。
      • @Stephen:您可以做的是保留一个单独的分支,该分支具有添加到您的私有文件的提交,并且永远不要将该分支发布到公共存储库。当开源部分更新时,您可以将其合并到'private'分支中,私有文件将被保留。
      • @Stephen 或者,如果您确实需要将敏感文件存储在某个存储库中,您可以使用子模块来存储敏感文件,然后在部署时只需将文件链接/复制到所需位置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 2010-10-10
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      相关资源
      最近更新 更多