Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在git中检查配置文件时隐藏密码_Python_Django_Git_Github - Fatal编程技术网

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

Python 在git中检查配置文件时隐藏密码,python,django,git,github,Python,Django,Git,Github,可能的重复项: 嗨 我想躲起来 DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' 在github中检查默认Django settings.py文件时,将显示该文件的第13行到第17行 我仍然想在tho中检查它,因为我不时地添加修改。我只希望这四行总是设置为空。不幸的是,Git不是这样工作的——文件在版本控制中,或者不是 如果你不想在Github中看到这些信息,那么就不要签入。不过

可能的重复项:

我想躲起来

DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = '' 
在github中检查默认Django settings.py文件时,将显示该文件的第13行到第17行


我仍然想在tho中检查它,因为我不时地添加修改。我只希望这四行总是设置为空。

不幸的是,Git不是这样工作的——文件在版本控制中,或者不是


如果你不想在Github中看到这些信息,那么就不要签入。不过,如果您愿意,您可以将配置文件的副本保存在其他单独的(私有)存储库中。

我建议将
settings.py
保留在这四行代码中,并使用一个单独的微型Python脚本来添加和删除四位机密信息(从一个不属于git存储库的文件中读取它们,而是安全、秘密地保存在非常安全的地方——为了安全起见,保存在两份副本中)


您可以进行预提交检查,以确保您永远不会推送一个未被删除机密的
settings.py
(我不知道
git
是否有“预提交触发器”它可以修改RPO,也可以预先检查检查它,但是如果确实如此,那么在这样的触发器中使用这个小Python脚本可能会更方便——实际上,如果是这样的话,您可能需要考虑使用<代码>修补程序进行秘密的移除/恢复,以及使用一个简单的差异文件。(这是它的输入,因此您甚至不必为此编写一行脚本)只需在main settings.py中导入它们

例如:

设置.py

DATABASE_PASSWORD = ''

try:
   from dev_settings import *
except ImportError:
   pass
DATABASE_PASSWORD = 'mypassword'
dev_settings.py

DATABASE_PASSWORD = ''

try:
   from dev_settings import *
except ImportError:
   pass
DATABASE_PASSWORD = 'mypassword'

并使dev_settings.py不受版本控制。

请参阅[在github中处理密码的最佳做法是什么?]()。如果您将这些密码存储在其他位置,请参阅了解一般原则。这样做的好处是,您也可以在此处放置其他设置:例如,DEBUG=True。