可能重复:
What is the best practice for dealing with passwords in github?
How can I track system-specific config files in a repo/project?
您好,
我想隐藏
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
在github中检查时,默认Django settings.py文件的第13行到第17行。
我仍然想要检查它,因为我不时添加修改。我只想将这四行始终设置为空。
答案 0 :(得分:21)
您还可以使用额外的设置文件来保存密码,然后将其导入主settings.py
例如:
<强> settings.py 强>
DATABASE_PASSWORD = ''
try:
from dev_settings import *
except ImportError:
pass
<强> dev_settings.py 强>
DATABASE_PASSWORD = 'mypassword'
并保持dev_settings.py不受修订控制。
答案 1 :(得分:5)
对于我的配置文件,我创建了config.py-example
和config.py
。版本控制忽略config.py
。部署时,我只需将config.py-example
复制到config.py
并更新密码。
答案 2 :(得分:1)
不幸的是,这不是Git的工作方式 - 文件是在版本控制中,还是不在。
如果您不想在Github中使用该信息,请不要将其签入。如果您愿意,可以将配置文件的副本保存在其他地方的单独(私有)存储库中。
答案 3 :(得分:1)
我建议将settings.py
与这四行完全一致地保存,并且有一个单独的微小Python脚本来添加和删除四位秘密信息(从一个文件中读取它们< em> not 你的git存储库的一部分,而是安全地,秘密地保存 - 为了安全起见,在非常安全的地方保存几份。)
您可以进行提前检查,以确保永远不会推送不已被剪掉秘密的settings.py
(我不知道git
告诉它是否有“预提交触发器”可以修改repo,以及提前检查只检查它,但是,如果确实如此,那么显然你可以更方便地在这样的触发器中使用所述微小的Python脚本 - 实际上,如果是这种情况,您可能需要考虑使用patch
删除/恢复机密,并使用简单的diff文件作为输入,这样您就不必编写内容了为此目的的一行脚本。