安全到Git将密码提交给永远不会被推送的分支?

时间:2015-02-15 12:38:04

标签: git version-control branch sensitive-data

如果我有两个分支,master& secret。我将敏感数据提交到secret,但从不推送secretmaster推送到公共回购。如果我从不在它们之间进行合并,只有rebase secret,是否任何机会我的敏感数据可能以某种方式结束在远程存储库索引中?

用例:我将所有机器的~/.config目录保存在公共Git存储库中。但是有一些程序需要密码而且无法使用环境变量。我的想法是为每台机器保留敏感数据的不同分支,并使用git钩子将敏感数据拒绝到分支master,并禁止公开推送机器分支。但我很担心

1 个答案:

答案 0 :(得分:2)

您必须非常小心,以确保您的秘密位不会被推送到远程存储库。例如,如果您从secret合并到master或意外推送secret,他们就会退出。请参阅How to disable git push when there are TODOs in code?以使用钩子实现策略,但钩子也可能无法实现其预期目的。

即使是,是的,技术上可以将秘密位保密在您自己的本地git存储库中,我建议将敏感数据完全保留在存储库中,而不是将它们放在配置文件或源文件中,可能在{{1取决于他们各自的位置。