有没有一种简单的方法来为不同的遥控器设置不同的 .gitignore 文件?我有一个存储库,我同时推送到 Heroku 和 Github。我需要 Heroku 的 database.yml,但不希望将某些信息推送到 Github。所以我需要为每个遥控器使用不同的 .gitignore 文件。
我尝试有两个独立的分支,一个忽略 database.yml,一个不忽略。问题是当我检查 heroku 分支并返回到我的 github 分支时,整个 database.yml 文件都消失了。
有小费吗?
不要将数据库信息放在 database.yml 中。相反,请使用 Heroku 环境变量。
我对 Heroku 的要求一无所知 - 希望正义是正确的,你可以简单地避免这个问题。如果你不能,或者如果其他人发现这个不能...
如果您希望两个遥控器成为镜像(具有相同的提交),则根据定义,它们必须在这些提交中具有相同的文件。因此,您有两个选择:file-for-repo-B
在所有存储库中都有,即使他们不需要它,或者使用带有两个分支的稍微混乱的工作流程:master
和for-repo-B
. 两个分支之间的唯一区别是提交的接触file-for-repo-B
;分支总是会从(但绝不会反过来!)for-repo-B
合并。master
现在你在 repo B 中签出了一个不同的分支,一切都很好。
你应该版本化:
database.yml
里面只有变量,并且database.yml
部署的远程服务器用正确的值替换这些变量的脚本。然后使用脚本作为涂抹属性过滤器驱动程序:
每次您在远程服务器上签出(并创建工作树)时,都会执行脚本并相应地更改变量,从而为您提供自定义database.yml
文件。
如果其中一个遥控器不需要该database.yml
文件,它仍然可以在那里,但被涂抹脚本清空。