在git中检查配置文件时隐藏密码

时间:2010-08-31 03:44:00

标签: python django git github

  

可能重复:
  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行。

我仍然想要检查它,因为我不时添加修改。我只想将这四行始终设置为空。

4 个答案:

答案 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-exampleconfig.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文件作为输入,这样您就不必编写内容了为此目的的一行脚本。