Aby odpowiedzieć na pytanie: jeśli chcesz wykluczyć niektóre pliki z kasy, możesz użyć sparse-checkout
1) W .git/info/sparse-checkout, określ, co chcesz zatrzymać. Tutaj chcemy all (*) ale (zwróć uwagę na wykrzyknik) config.php:
/*
!/config.php
2) Powiedz gitowi, że chcesz wziąć pod uwagę rzadkie płatności
git config core.sparseCheckout true
3) Jeśli masz już ten plik lokalnie, zrób to, co robi git przy rzadkim pobieraniu (powiedz mu, że musi wykluczyć ten plik, ustawiając na nim flagę "skip-worktree")
git update-index --skip-worktree config.php
4) Korzystaj z repozytorium, w którym plik config.php należy do Ciebie - niezależnie od zmian w repozytorium.
Należy pamiętać, że wartości konfiguracyjne NIE POWINNY znajdować się w kontroli źródła:
- Jest to potencjalne naruszenie bezpieczeństwa
- Powoduje problemy takie jak ten podczas wdrażania
Oznacza to, że MUSISZ je wykluczyć (umieścić je w .gitignore przed pierwszym zatwierdzeniem) i utworzyć odpowiedni plik w każdej instancji, w której pobierasz swoją aplikację (kopiując i dostosowując plik „szablonu”)
Zauważ, że gdy plik zostanie przejęty przez git, .gitignore nie przyniesie żadnego efektu.
Biorąc pod uwagę, że gdy plik jest pod kontrolą źródła, masz tylko dwie możliwości (): - ponownie bazuj całą historię, aby usunąć plik (za pomocą git filter-branch) - utwórz zatwierdzenie, które usunie plik. To jak staczanie przegranej bitwy, ale cóż, czasami trzeba z tym żyć.
config.php?