2010-07-13 32 views
6

我有一个Ruby on Rails应用程序,我试图在Heroku上托管。我还想使用GitHub公共(免费)存储库来跟踪更改。我需要检入包含Heroku远程仓库密码的文件,但忽略该文件,因此我没有将其检入到GitHub中。有没有办法将文件添加到一个回购站,并从另一个回收站忽略它?Git:如何从一个回购中忽略文件并将其添加到另一个回收?

更新:我想通过使用Heroku Config vars来解决我在Heroku中存储密码的直接问题。不过,我仍然对将文件推送到指定回购站的概念感兴趣。

+0

我对Heroku并不熟悉,但是难道你不能手动将文件复制到Heroku服务器,并且完全不使用版本控制? – 2010-07-13 04:18:56

+0

要“部署”到Heroku,你需要将你的Heroku git仓库添加为一个远程仓库,并运行“git push heroku master”来将你的更改推送到Heroku。因此,需要检入才能将文件推送到Heroku。 (或者至少这是我的理解) – Andrew 2010-07-13 04:29:20

回答

1

你可以做的是添加到GitHub库污迹脚本(filter driver),这将:

  • 测试的私有分支的现有
  • 结帐从该分支
  • 的密码文件

alt text

由于私人分支只会在Heroku的回购存在,涂抹竟被脚本不要在GitHub回购站做任何事情。
但是一旦推到Heroku端,如果一个钩子在Heroku服务器上检查一个工作目录,那么相同的过滤器驱动程序将会启动并生成敏感文件。

这就是说,最好这样一个敏感的文件从来没有版本在任何Git回购,而是存储在其他地方。
涂抹脚本,而不是测试一些Git回购内容(如私人分支),然后测试外部回购(一个SSH密码,一个Nexus回购,任何其他数据引用那里你选择存储这些私人信息) ,提取正确的内容并生成文件。

+0

这个答案解释了如何简单地使用私人的heroku分支:http://stackoverflow.com/questions/3221657/how-can-i-upload-my-application-to-github- but-remove-sensitive-authorization-info/3223543#3223543 – igorw 2010-07-13 09:23:16

+1

@ evil3:我明白了,但我不会相信包含“永远不会推动分支xxx回购yyy”的解决方案。它会很好地工作,直到那天...无论如何都被推送(错误地)。我真的更喜欢任何Git仓库以外的任何敏感信息*。 – VonC 2010-07-13 10:18:40

2

正如VonC所说,最好的(也是最不容易出错的)赌注是保持敏感的配置信息不在Git中,并将它们放在服务器上的环境变量中。以下是如何做到这一点在Heroku说明:

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

参见链接的问题。

相关问题