2012-03-28 15 views
1

データベース構成ファイルdatabase.ymlがあります。私のクライアントは、サーバークローンを作成してテスト用にリポジトリ全体を構築するため、Gitに入っている必要があります。Git - .gitignoreに同時にファイルを追加しても、それをGit/remote repoに保存するには?

ローカルマシンにこのファイルのコピーを持っていますが、問題はローカルに変更したいのですが、gitはこれらの変更を無視します。つまり、変更が加えられたときにリポジトリの変更をコミットせず、それを上書きしないでください/プルリクエストを発行したときに違うことについて私に面倒を与えてください。

これを達成する方法を知っている人はいますか?ありがとう!

答えて

4

実際のデータベース認証情報をバージョン管理に含めないでください。 database.ymlファイルを空白のユーザ名/パスワードでdatabase.yml.exampleにコピーし、database.ymlを.gitignoreに追加します。クローンを作成するたびに、database.yml.exampleをdatabase.ymlにコピーし、そのインストールの特定のデータベース認証情報をdatabase.ymlコピーに入れます。

デプロイするたびにプロダクション環境を再設定する必要がないようにするには、デプロイ間にconfigファイルなどの設定を保持するCapistranoなどのものを使用するか、永続的なものへのリンクを作成する独自のスクリプトを作成しますデプロイディレクトリの外にあるdatabase.yml。

また、git update-index --assume-unchanged config/database.ymlを使用して、Gitにそのファイルのローカル変更を無視させることもできますが、これは行わないでください。正しい解決策は、実際のデータベースの資格情報をGitから守ることです。