Suppoe我在git
工作,我创建了一个名为sensitive
的分支,并在sensitive
中提交敏感数据(例如密码,密钥)。我从未在master
中提交敏感数据,我从未将sensitive
合并到master
,但我确实将master
拉入sensitive
。当我git push origin master
时,是否有任何危险我会将敏感数据的blob推送到服务器?
答案 0 :(得分:4)
你的问题是关于Git,但事实上,你的问题是另一回事。它(至少)有一个解决方案。
config
的文件中,并将其名称(和路径)添加到.gitignore
。config.dist
,用虚拟数据替换敏感数据并将其添加到存储库(它绝不能包含敏感数据)。在文件的标题中说明必须将其复制为config
并自定义。config
加载其配置。对于奖励积分,如果config.dist
不可用,您可以加载config
。文件config.dist
用作永远存储在repo中的实际config
文件的模板。每个开发人员都可以根据需要/想要自定义他们的config
文件。让config
/ config.dist
包含从一个系统更改为另一个系统的所有信息,或者可能在项目生命周期内更改的信息(文件路径,数据库连接参数,密码等)。
要回答您的问题,上面提出的解决方案是100%安全的(让人为错误分开)。由于config
文件永远不会到达仓库,无论Git如何在内部工作,敏感数据都不会被推送到远程仓库。
答案 1 :(得分:0)
不,没有危险。如果您不考虑将敏感数据共享给可以访问您存储库的所有人。