【问题标题】:Is there a way to setup remote-specific .gitignores?有没有办法设置远程特定的.gitignores?
【发布时间】:2011-01-28 05:32:06
【问题描述】:

有没有一种简单的方法来为不同的遥控器设置不同的 .gitignore 文件?我有一个存储库,我同时推送到 Heroku 和 Github。我需要 Heroku 的 database.yml,但不希望将某些信息推送到 Github。所以我需要为每个遥控器使用不同的 .gitignore 文件。

我尝试创建两个独立的分支,一个忽略 database.yml,一个不忽略。问题是当我检查 heroku 分支并返回到我的 github 分支时,整个 database.yml 文件都消失了。

有什么建议吗?

【问题讨论】:

  • FunkyMunky,您找到解决问题的好方法了吗?

标签: git github heroku gitignore


【解决方案1】:

不要将数据库信息放在 database.yml 中。相反,请使用 Heroku 环境变量。

【讨论】:

  • 这条规则适用于任何其他生产环境,而不仅仅是heroku。
【解决方案2】:

我对 Heroku 的要求一无所知 - 希望正义是正确的,您可以简单地避免这个问题。如果你不能,或者如果其他人发现这个不能...

如果您希望两个远程成为镜像(具有相同的提交),则根据定义,它们必须在这些提交中具有相同的文件。因此,您有两个选择:在所有存储库中使用 file-for-repo-B,即使他们不需要它,或者使用带有两个分支的稍微混乱的工作流:masterfor-repo-B。两个分支之间的唯一区别是提交触及file-for-repo-B;分支for-repo-B 总是从master 合并(但绝不会反过来!)。现在你在 repo B 中签出了一个不同的分支,一切都很好。

【讨论】:

    【解决方案3】:

    你应该版本化一个:

    • database.yml 里面只有变量,并且
    • 一个脚本能够用正确的值替换这些变量,具体取决于部署 database.yml 的远程服务器。

    然后您将脚本用作 smudge attribute filter driver

    每次您在远程服务器上签出(并创建工作树)时,都会执行脚本并相应地更改变量,从而为您提供自定义的database.yml 文件。
    如果其中一个遥控器不需要那个database.yml 文件,它仍然可以在那里,但被涂抹脚本清空。

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多