2010-03-16 51 views
23

有没有简单的方法来为不同的遥控器设置不同的.gitignore文件?我有一个仓库,我推到了Heroku和Github。我需要Heroku的database.yml,但不希望某些信息被推送到Github。所以我需要为每个遥控器使用不同的.gitignore文件。有没有办法设置远程特定的.gitignores?

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

任何提示?

+0

FunkyMunky,你找到一个很好的解决你的问题? – 2011-04-29 07:47:53

回答

5

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

如果你想要两个遥控器是镜像(具有相同的提交),他们必须按照定义在这些提交中具有相同的文件。因此,您有两种选择:在所有存储库中都有file-for-repo-B,即使他们不需要它,或者使用具有两个分支的小杂乱工作流程:masterfor-repo-B。两个分支之间的唯一区别是触及file-for-repo-B的承诺;分支for-repo-B将总是从master合并(但从来不是这样!)。现在你只需要在回购B中签出一个不同的分支,而且一切都很好。

10

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

+0

此规则适用于任何其他生产环境,而不仅仅是heroku。 – 2016-10-02 17:54:14

1

你应该versionned一个:

  • database.yml与它只有变量和
  • 能够通过根据如该database.yml部署在远程服务器上的正确的价值观,以取代那些变量的脚本。

然后使用脚本作为smudge attribute filter driver

smudge content filter

每次将签(并创建一个工作树)的远程服务器上,该脚本执行,将改变相应的变量,给你一个自定义的database.yml文件。
如果其中一个远程不需要该文件,它仍然可以在那里,但被污迹脚本清空。

相关问题