基于远程的 Git 忽略文件?

7

是否有可能在Git中仅针对特定远程忽略特定文件?例如,我为在Heroku上托管的应用程序将AWS S3凭据(s3.yml)存储在一个文件中,因此我需要将s3.yml检入我的存储库以使部署工作。然而,我也想将源代码发布到GitHub上,因此最好不将s3.yml包含在存储库中。我想象它的工作方式类似于:

#.gitignore
github:config/s3.yml

我在git文档中没有找到相关内容,想知道是否可以实现这一点?还是说我需要维护两个不同的仓库?

谢谢!

2个回答

3
如果您将文件直接发布,它将永远存在于仓库中。即使您创建了一个分支并使用git-rm删除了该文件,人们仍然可以检出仍有该文件的版本。我没有看到在保持单个文件在远程不可访问的情况下使用单个存储库的任何方法。
核心问题是,作为分布式SCM,每个存储库都具有完整的修订历史记录。由于更改列表基于其内容进行加密签名,因此无法删除文件而不更改自添加文件以来的每个更改列表的哈希值。虽然Git可以做到这一点,但此时您将拥有两个无法直接/轻松推送/拉取的单独存储库。

我有点预料到了。我只是希望Git的开发人员已经为我们解决了这个问题 - 毕竟他们非常聪明 :D - trydionel

3

Heroku有config-vars来处理这种情况。他们的意见是s3的信息不应该提交到Git中。请查看此链接以了解更多关于他们期望这种情况的信息。


很棒的链接--我以前没看过。它确实解决了示例问题! - trydionel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接