保护 git 存储库中的文件

Posted

技术标签:

【中文标题】保护 git 存储库中的文件【英文标题】:Securing files in git repository 【发布时间】:2013-08-07 04:09:36 【问题描述】:

有什么好的方法来处理git仓库中单个文件的权限吗?

我有一个 .net 项目,想与我的团队分享。我不想分享的是到生产数据库、存储等的连接字符串。

我知道我可以使用这些文件创建新分支,但它变得更加复杂。

【问题讨论】:

相关:***.com/questions/3071013/… 【参考方案1】:

您不应该一开始就将敏感数据添加到您的存储库中。相反,请将各自的文件名添加到 .gitignore,这样您就不会意外提交它们。

如果您真的必须将文件保存在存储库中,请在提交前使用 gitook 加密文件,并仅在存在正确密钥的情况下在结帐时解密。 Here 是一个起点。 编辑如果你真的想这样做,git-crypt 听起来很有帮助

【讨论】:

【参考方案2】:

真正的答案是,您不应该像这样在代码中嵌入任何敏感数据。连接字符串应该在运行时从一些配置存储中读取(任何类似的,在app.config 或 INI 文件或其他任何东西中),如果您选择配置文件,您应该只保留在存储库中 samples 这些文件仅供参考。

【讨论】:

配置是我正在谈论的文件。我不想只将它们存储在我的个人计算机中。我希望能够管理这些文件的权限。如果我需要更新生产环境,我只需合并 git 并发布它。 @Ari 正如我和 kostix 所说,存储库应该从不包含敏感数据,你可以用 git 做的唯一类似许可的事情是使用例如gitolite 使某些分支仅对有限的一组用户可用。无法在特定用户的提交中“隐藏”文件,因为缺少这些文件会产生不同的提交 ID。 @Ari,Git 不是部署工具。但是,即使您像这样使用它,不在存储库中保留敏感(“真实”)配置文件有什么问题?只需让您的生产系统将它们安装到位并教您的代码在运行时找到它们。真的有什么问题? @kostix 我需要以某种方式保留这些文件。回购似乎是个好地方。

以上是关于保护 git 存储库中的文件的主要内容,如果未能解决你的问题,请参考以下文章

忽略Git存储库中SVN中的文件

如何管理 git 存储库中的 IDE 文件?

计算 git 存储库中的行数

如何转换 git 存储库中的大量提交 [重复]

Spring Cloud 配置服务器未读取本地 git 存储库中的属性文件

从 Bamboo 中的单独 GIT 存储库中提取文件