我正在开发一个小型项目,我正在使用连接字符串以及其他人不应该看到或使用的api键和值。我使用公共GitHub帐户进行源代码管理。当web.config中的这些值是纯文本时,使用源代码控制的常用方法是什么?
在签入代码之前,是否需要手动删除值?
答案 0 :(得分:66)
我发现的工作是检查文件的版本是否为空白值或虚拟值,然后运行:
git update-index --assume-unchanged [fileName]
然后,Git将停止监视对该文件的更改,允许您将真实的配置信息放入其中,而不必担心将其签入。
如果您稍后进行了想要检查的更改,则可以运行:
git update-index --no-assume-unchanged [fileName]
答案 1 :(得分:32)
我们将敏感和/或机器特定的配置保存在单独的配置文件中,然后使用configSource将它们包括在内......
<connectionStrings configSource="cstrings.config"/>
这样,您可以检入Web.config和cstrings.config文件,该文件具有可在开发计算机上使用的通用值。 (例如,(local),... MyAppNameDb ...)
对于生产环境,请将cstrings.config文件标记为只读并设置部署脚本,以免您尝试对其进行写入。您的生产连接字符串受该框中的安全保护。这可以使您的敏感字符串不受版本控制。
<强> cstrings.config 强>:
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="Default" connectionString="Server=localhost"/>
</connectionStrings>
答案 2 :(得分:4)
您可以签入包含虚拟值的config.sample文件。然后,每个开发人员都会复制该文件以配置和编辑他们自己的值。然后,您可以将此本地文件放在.gitignore中。