是否可以忽略某些遥控器中git 中的特定文件?例如,我将AWS S3凭据(s3.yml
)存储在Heroku上托管的应用程序的文件中,因此,我需要将s3.yml
检入我的仓库以使部署工作。但是,我也想将源代码发布到GitHub,所以我最好将s3.yml
保留在repo之外。我会想象它的工作类似于
#.gitignore
github:config/s3.yml
但无法在git文档中找到任何内容。这可能吗?或者我需要维护两个单独的回购?
谢谢!
答案 0 :(得分:3)
如果按原样发布,该文件将始终存在于repo中。即使你创建了一个分支并且git-rm这个文件,人们总是可以检查出仍然拥有该文件的版本。我没有看到任何使用单个存储库的方法,同时保持远程单个文件不可访问。
核心问题是,作为分布式SCM,每个存储库都有完整的修订历史记录。由于更改列表是根据其内容进行加密签名的,因此无法在不更改每个更改列表的哈希值的情况下擦除文件,直到添加文件为止。这是git可以做的事情,但此时你有两个独立的存储库,无法直接/轻松推/拉。
答案 1 :(得分:3)
Heroku有这种东西的配置变量。他们的意见似乎是s3信息不应该检入Git。查看this link以获取有关他们如何期待此类事情的更多信息。