2010-01-04 58 views
7

是否可以忽略git 中的特定文件仅适用于某些遥控器?例如,我将AWS S3凭证(s3.yml)存储在Heroku上托管的应用程序的文件中,因此我需要将s3.yml复选到我的回购库中以供部署工作。不过,我也想将源代码发布到GitHub上,所以我会明智地将s3.yml保留在回购站之外。我会想象它的工作原理类似于基于远程的git忽略文件?

#.gitignore 
github:config/s3.yml 

但是在git文档中找不到任何东西。这可能吗?或者我需要维护两个单独的回购?

谢谢!

回答

3

如果您按原样发布该文件,该文件将始终存储在回购站中。即使你创建了一个分支并将该文件用git-rm命令,人们总是能够检出仍然存在该文件的版本。我没有看到使用单个存储库的任何方法,同时保持远程单个文件不可访问。

核心问题是,作为一个分布式SCM,每个存储库都有完整的修订历史记录。由于更改表是基于其内容进行加密签名的,因此无法在不添加每个更改列表的情况下删除文件,直到添加文件时为止。这是git可以做的事情,但此时您有两个独立的存储库,无法直接/轻松地推/拉。

+0

我有点期待如此。我只是希望git们为我们工作 - 毕竟他们非常聪明:D – trydionel 2010-01-04 21:38:18

3

Heroku有这种事情的config-vars。他们的意见似乎是s3信息不应该被检入Git。请查看this link了解更多关于他们如何期待这类事情的信息。

+0

伟大的链接 - 我以前没有见过。它肯定会照顾这个例子! – trydionel 2010-01-04 21:36:21