26

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

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

有小费吗?

4

3 回答 3

10

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

于 2010-03-16T17:20:32.603 回答
5

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

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

于 2010-03-16T17:25:07.933 回答
1

你应该版本化:

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

然后使用脚本作为涂抹属性过滤器驱动程序

涂抹内容过滤器

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

于 2010-03-16T17:52:19.727 回答