私の問題/問題
私たちは、github でホストしているオープンソース プロジェクトに取り組んでいます。プロジェクトは Django で記述されているため、settings.py ファイルに設定があります。サブスクリプションが安すぎるからではなく、意図的にオープンソースにしたいからです。
とにかく、私たちもこのコードを自分で実行したいので、db パスワードなどのすべての機密データを含む site_settings.py を用意します。誰もが見られるように github でこれをしたくないので、これは .gitignore ファイルにあります.
通常、リポジトリのクローンを作成し、このファイルをローカルおよびサーバーに追加します。このようにして、すべての個人設定が保持され、機密データが git に保存されることはありません。
問題は、heroku が通常のサーバーのように動作しない (分散ファイル システムで動作する) ため、サーバー上でのファイルの作成をサポートしていない Heroku でコードを実行する必要があることです。
もちろん、私自身も考えましたが、これが正しいアプローチかどうかはわかりません。私は Heroku と Git の両方が初めてであることを覚えておいてください。以下は私の現在の解決策です:
これを修正する方法に関する私の現在の考え
次の 2 つのリモコンがあります。
- 起源 == Github
- heroku == ヘロク
すべての開発ブランチと機能ブランチを除外して、(Heroku と Github の) 両方のマスター ブランチだけを気にする必要があります。
私の考えは、ブランチをローカルで次のようにセットアップすることでした。
- マスター -> リモート/オリジン/マスター
- heroku -> リモート/heroku/master
マスター ブランチでは、site_settings.py を .gitignore に配置するため、Github にコミットするときに git はそれを無視します。すべての dev ブランチなどについても同様です。新しいリリースができるまで、すべての変更をマスター ブランチに収集します。
heroku ブランチで .gitignore ファイルを編集して site_settings.py を無視しないようにしたので、heroku ブランチにプッシュすると Heroku にコミットされます。
新しいリリースができたら、heroku ブランチに切り替えて、次のように master を heroku にマージします。
git checkout heroku
git pull
git merge master
マージからのマージ競合を整理したら、Heroku にコミットし、新しいリリースを稼働させます.. =D
私の質問
これを解決するのに私の考えは受け入れられますか (このように .gitignore でも機能しますか?)、そうでない場合は、可能な限りクリーン/最善の方法でこれを解決するにはどうすればよいですか? さらに情報が必要な場合は、お気軽にお問い合わせください:)