私はRailsアプリケーションで以下のシナリオを持っていますが、Githubのような公開リポジトリに開発資格情報をプッシュしたくない他のアプリケーションにもシナリオを採用することができます。GIT - 追跡からローカルファイルを削除するが、リモートリポジトリにコピーを残す方法?
config/database.yml
私は自分のローカルMySQLデータベースの資格情報を持っていますが、実際にこの詳細を公開する必要はありません。そのため、たとえばダミーデータの場合はdatabase.yml
のように1つのコピーを作成してください。それをリモートリポジトリにプッシュし、.gitignoreに追加してトラッキングから削除し、実際のデータベースクレデンシャルでローカルリポジトリ内のこのファイルを更新します。私がこれをした後:
git rm --cached config/database.yml
ファイルは実際に私のリモートリポジトリから削除されました。どのように私はこれを防ぐことができ、私は初期設定ファイルをプッシュした後、無視しますが、リモートリポジトリにこのファイルの最初のコミットを残しますか?
マイ.gitignoreをかいつまんでファイルconfig/database.yml
# Ignore config/database.yml
/config/database.yml
を無視するように、このラインを持って、私は私のローカルおよびリモートのリポジトリにファイルの2つの異なるコピーを持つようにしたい、と私は変更を追跡する必要はありません一度私は実際のMySQLサーバ接続の資格情報でdatabase.yml
ファイルを更新します。
実際にはこれはうまくいかないでしょう。詳細は 'git update-index --skip-worktree'を参照してください。[この回答](http://stackoverflow.com/a/39583010/4233593) 。 –