質問に答えるには:チェックアウトの特定のファイルを除外する場合は、スパースチェックアウトを使用できます
1)で.git/info/sparse-checkout、保持するものを定義します。ここでは、すべての(*)が必要です(感嘆符に注意してください)config.php:
/*
!/config.php
2)スパースチェックアウトを考慮に入れたいことをgitに伝えます
git config core.sparseCheckout true
3)このファイルをローカルで既に取得している場合は、gitがスパースチェックアウトで実行することを実行します(「skip-worktree」フラグを設定して、このファイルを除外する必要があることを伝えます)
git update-index --skip-worktree config.php
4)config.phpファイルが自分のものであるリポジトリをお楽しみください-リポジトリの変更は何でも。
構成値がソース管理に含まれていないことに注意してください:
- これは潜在的なセキュリティ違反です
- デプロイメントの場合、このような問題が発生します
つまり、それらを除外し(最初のコミットの前に.gitignoreに置く)、アプリをチェックアウトする各インスタンスに適切なファイルを作成する必要があります(「テンプレート」ファイルをコピーして変更することにより)
いったんgitがファイルを担当すると、.gitignoreは何の効果もないことに注意してください。
その場合、ファイルがソース管理下に置かれると、2つの選択肢()しかありません。-すべての履歴をリベースしてファイルを削除します(を使用git filter-branch)-ファイルを削除するコミットを作成します。それは敗戦の戦いのようなものですが、まあ、それと一緒に生きなければならないこともあります。
config.phpコミットされますか?