Git:如何忽略一个仓库中的文件并将其添加到另一个仓库?

时间:2010-07-13 04:14:18

标签: git heroku

我有一个Ruby on Rails应用程序,我试图在Heroku上托管。我还想使用GitHub公共(免费)存储库来跟踪更改。我需要签入一个包含Heroku远程仓库密码的文件,但忽略该文件,所以我不检查它到GitHub。有没有办法可以将文件添加到一个仓库中,而忽略另一个仓库?

更新:我想出了如何解决我使用Heroku Config vars在Heroku中存储密码的直接问题。但是,我仍然对将文件推送到指定的存储库的概念感兴趣。

2 个答案:

答案 0 :(得分:3)

正如VonC所提到的,最好的(也是最容易出错的)赌注是将敏感的配置信息保留在Git之外并将它们放在服务器上的环境变量中。以下是关于如何在Heroku上执行此操作的说明:

http://docs.heroku.com/config-vars

另见相关问题。

答案 1 :(得分:1)

你可以做的是在GitHub回购中添加一个涂抹脚本(filter driver),它将:

  • 测试现有的私人分支机构
  • 签出该分支机构的密码文件

alt text

由于私有分支只存在于Heroku repo上,因此污迹脚本在GitHub repo端不会执行任何操作。
但是一旦被推到Heroku端,如果一个钩子正在检查Heroku服务器上的工作目录,那么相同的过滤器驱动程序将启动并生成敏感文件。

话虽如此,对于这样一个敏感文件来说,最好永远不会在任何Git仓库中进行版本化,而是存储在其他地方。
涂抹脚本,而不是测试一些Git仓库内容(如私人分支),然后测试外部仓库(ssh ftp,Nexus仓库,你选择存储那些私人信息的任何其他数据参考),提取正确的内容并生成文件。