前書き
自分のソースコードをGitHubでpublicリポジトリとして公開しようとした際、環境変数などが書かれたままだとよろしくないと思い、そういった情報のみ公開しないように色々調べた結果を記録します。
すでにQiita上で公開されている情報をひとまとめにしました。
参考サイト
この記事でわかること
Gitで管理しているリポジトリ内の特定のファイルのみを非公開にする方法
・.envファイルの作成
・config.pyでの.envの内容取得
・.gitignoreの作成
・gitにコミット・プッシュ
使用するツール
python-dotenvを使用します。ターミナルを開き、以下のコマンドでインストールします。
pip install python-dotenv
公開したくない情報をまとめた.envファイルを作成
私の場合、.gitフォルダのあるディレクトリ上に.envファイルを新規作成しました。
やり方は以下。
[新規作成]⇒[テキストドキュメント]⇒ファイル名を「.env」に変更
.envファイルに公開したくない情報を記入します。以下はサンプルです。
DIRECTORY='環境変数などの情報'
API_KEY='公開したくないAPIキーなどの情報'
私の作成したソースコードでは、もともとconfig.pyというファイルで環境変数やAPIキーを指定していたので、config.pyで.envファイルから取得するように変更しました。以下はサンプルです。
from dotenv import load_dotenv
load_dotenv()
import os
directory = os.getenv('DIRECTORY')
api_key = os.getenv('API_KEY')
#以下の2行のコメントアウトを外し、一度config.pyを実行してみてください。
#.envファイルで指定した内容が表示されていればOKです。
#print(directory)
#print(api_key)
Gitにコミット
.gitignoreファイルを作成します。やり方は.envファイルのときと同じです。
.gitignoreファイルに以下を記入します。
※すでに.gitignoreファイルを作成している場合は、追記でOK
/.env
調べたところ、「/.env」ではなく「.env」だけでもいけそうなのですが、私は"/"ありにしました!
あとは、コミット&プッシュするだけです。
git add .
git commit -m ".gitignore追加"
git push origin master
.gitignoreで.envをgitの管理から除外したおかげで、今後「git add .」をしても.envファイルはaddされません!
GitHubなどでソースコードを見られるなら、本当にプッシュされていないか確認することをおすすめします。
以上です。初めてこういう記事を書いたので、わかりづらい所があったらすみません。