LoginSignup
66
50

More than 3 years have passed since last update.

SECRET_KEYを誤ってGitHubにプッシュしたときの対処法(Django編)

Posted at

概要

DjangoアプリをGitHubで管理していて、公開リポジトリにしたかったのですが、一番最初のコミットからSECRET_KEYをコミットしていました。(この時点では非公開)

また、複数のコミット歴があるので、どのように処理すればいいかわからず、①最初からやり直す②履歴の書き換えを考えていました。

今回はそれ以外の方法で解決できたので、その方法を書いてみます。

なお、環境はpython 3.7.3django 2.2になります。

1. local_settings.py設定

1-1. local_settings.py作成

まずは下記のコマンドを実行しlocal_settings.pyを作成してください。

※settings.pyと同じディレクトリに作成

terminal
$ touch local_settings.py
1-2. SECRET_KEY削除

settings.pyにあるSECRET_KEYを削除します。

settings.py
SECRET_KEY = 'こちらにご自身のSECRET_KEYが記載されている' #行ごと削除
1-3. settings.py設定

local_settings.pyを読み込むため、下記を追加してください。

settings.py
try:
    from .local_settings import *
except ImportError:
    pass

2. SECRET_KEYの再生成

2-1. get_random_secret_key.py作成

settings.pyと同じディレクトリにget_random_secret_key.pyを作成し、下記を追加してください。

get_random_secret_key.py
from django.core.management.utils import get_random_secret_key

secret_key = get_random_secret_key()
text = 'SECRET_KEY = \'{0}\''.format(secret_key)
print(text)
2-2. 再生成する

プロジェクトフォルダーにディレクトリを移動し、下記を実行します。

※プロジェクトフォルダーはsettings.pyやwsgi.pyがあるフォルダー

実行後に新しいSECRET_KEYが生成されます。

terminal
$ python get_random_secret_key.py
SECRET_KEY = 'こちらにSECRET_KEYが生成されます'
2-3. SECRET_KEY変更

local_settings.pyに新しいSECRET_KEYを追加します。

local_settings.py
SECRET_KEY = 'こちらに新しく生成されたSECRET_KEYを記入' #追加

3. GitHubにプッシュ

3-1. .gitignore作成

プッシュする前に.gitignoreを作成して、local_settings.pyを記載します。

下記のコマンドを実行してください。

※.gitignoreを作成済みであれば、追加でファイルを記載してください

terminal
$ echo local_settings.py > .gitignore
3-2. プッシュする

下記コマンドでGitHubにプッシュします。

terminal
$ git add -A #全部コミットしたい場合
$ git add local_settings.py settings.py .gitignore #ファイルを指定したい場合は、こちらでもok
$ git commit -m "SECRET_KEY変更" #"コメントはご自由に変更してok"
$ git push origin master #origin, masterは各々の設定にしてください
3-3. 完成

これで、①SECRET_KEYを新しくし②GitHubから見えないようにすることができました。

4. まとめ

処理を図にまとめてみました。

secret_key_github_fix.png

5. 参照

以上

66
50
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
50