【问题标题】:Hide password when checking config file in git [duplicate]在git中检查配置文件时隐藏密码[重复]
【发布时间】:2011-04-06 01:45:24
【问题描述】:

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

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

【问题讨论】:

标签: python django git github


【解决方案1】:

你也可以有一个额外的设置文件来保存密码,然后将它们导入到你的主 settings.py 中

例如:

settings.py

DATABASE_PASSWORD = ''

try:
   from dev_settings import *
except ImportError:
   pass

dev_settings.py

DATABASE_PASSWORD = 'mypassword'

并将 dev_settings.py 排除在修订控制之外。

【讨论】:

  • 这样做的好处是您也可以在此处放置其他设置:例如 DEBUG=True。
【解决方案2】:

对于我的配置文件,我创建了一个config.py-example 和一个config.pyconfig.py 被版本控制忽略。部署时,我只需将config.py-example 复制到config.py 并更新密码。

【讨论】:

    【解决方案3】:

    不幸的是,这不是 Git 的工作方式 - 文件在版本控制中,或者不在。

    如果您不想要 Github 中的信息,请不要签入。不过,如果您愿意,可以将配置文件的副本保存在其他地方的单独(私有)存储库中。

    【讨论】:

      【解决方案4】:

      我建议将settings.py 与您所展示的那四行完全相同,并使用一个单独的小型 Python 脚本来添加和删除这四位秘密信息(从 的文件中读取它们 不是您的 git 存储库的一部分,而是安全且秘密地保存 - 为了安全起见,保存在几个副本中 - 在非常安全的地方)。

      您可以进行提交前检查,以确保您永远不会推送一个 没有 泄露秘密的 settings.py(我不知道 git 是否足以判断它具有可以修改 repo 的“预提交触发器”,以及只检查它的预提交检查,但是,如果确实如此,那么显然在这样的触发器中使用所述微小的 Python 脚本可能更方便——事实上,如果是这种情况,您可能需要考虑使用patch 和一个简单的差异文件作为其输入来删除/恢复机密,因此您甚至不必为目的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 2017-09-26
        • 2016-07-17
        • 2017-04-18
        • 2017-08-01
        • 2014-02-21
        • 1970-01-01
        相关资源
        最近更新 更多