私はまだ Git のすべてに不慣れで、設定ファイルに関するベストプラクティスは何だろうと考えていました。ローカル開発サーバーにはライブサーバーとは異なる設定値が必要なので、それらのファイルのプッシュ/プルを停止するにはどうすればよいでしょうか?
ベストアンサー1
シンボリックリンクを使用します。
「config.ini」という名前の設定ファイルがある場合を例に挙げます。Git リポジトリの作業ディレクトリで、次の操作を実行します。
「config-sample.ini」という設定ファイルのバージョンを作成します。これがすべての作業を行うファイルです。
「config.ini」と「config-sample.ini」の間にシンボリックリンクを作成します。
ln -s config-sample.ini config.ini
これにより、実際には「config-sample.ini」を管理しているにもかかわらず、すべてのコードが「config.ini」を指すようになります。
.gitignore を更新して、「config.ini」が保存されないようにします。つまり、「config.ini」行を追加します。
echo "config.ini" >> .gitignore
(オプションですが、強くお勧めします) 「config.ini export-ignore」という行を含む .gitattributes ファイルを作成します。
echo "config.ini export-ignore" >> .gitattributes
コーディングしてデプロイします。
コードを本番環境にデプロイした後、「config-sample.ini」ファイルを「config.ini」にコピーします。本番環境用に設定するために必要な調整を行う必要があります。この操作は、初めてデプロイするときと、構成ファイルの構造を変更するときにのみ実行する必要があります。
これにはいくつかの利点があります:
設定ファイルの構造はリポジトリ内で管理されます。
開発環境と本番環境の間で同じ構成オプションについては、適切なデフォルトを維持できます。
新しいバージョンを本番環境にプッシュするたびに、「config-sample.ini」が更新されます。これにより、「config.ini」ファイルで行う必要がある変更を簡単に見つけることができます。
「config.ini」の製品バージョンが上書きされることはありません。(.gitattributes ファイルを使用したオプションの手順 4 により、「config.ini」ファイルを誤ってリポジトリに追加した場合でも、そのファイルがエクスポートされないという追加の保証が追加されます。)
(これは、Mac と Linux ではうまく機能します。Windows でも同様の解決策があると思いますが、それについては他の誰かがコメントする必要があります。)