是否有一种简单的方法可以为不同的遥控器设置不同的.gitignore文件?我有一个存储库,我向Heroku和Github推送。我需要Heroku的database.yml,但不希望将某些信息推送到Github。所以我需要为每个遥控器使用不同的.gitignore文件。
我尝试过两个独立的分支,一个忽略database.yml,另一个不忽略。问题是,当我签出heroku分支并返回我的github分支时,整个database.yml文件都消失了。
任何提示?
答案 0 :(得分:10)
不要将数据库信息放在database.yml中。相反,请使用Heroku环境变量。
答案 1 :(得分:5)
我对Heroku的要求一无所知 - 希望Justice是对的,你可以简单地避免这个问题。如果你不能,或者如果其他人发现这个不能......
如果您希望两个遥控器成为镜像(具有相同的提交),则根据定义,它们必须在这些提交中具有相同的文件。因此,您有两个选择:在所有存储库中都有file-for-repo-B
,即使他们不需要它,也可以使用带有两个分支的稍微混乱的工作流:master
和for-repo-B
。两个分支之间的唯一区别是提交file-for-repo-B
;分支for-repo-B
总是从master
合并(但从来没有相反!)。现在你只需要在回购B中检查一个不同的分支,一切都很好。
答案 2 :(得分:1)
你应该版本化a:
database.yml
只包含变量,database.yml
的远程服务器。然后您将脚本用作 smudge attribute filter driver :
每次在远程服务器上签出(并创建工作树)时,脚本都会执行并相应地更改变量,从而为您提供自定义database.yml
文件。
如果其中一个遥控器不需要database.yml
文件,它仍然可以存在,但是由涂抹脚本清空。