Para responder à pergunta: se você deseja excluir determinados arquivos de um checkout, pode usar a finalização esparsa
1) Em .git/info/sparse-checkout, defina o que você deseja manter. Aqui, queremos tudo (*), mas (observe o ponto de exclamação) config.php:
/*
!/config.php
2) Diga ao git que você deseja levar em consideração a compra esparsa
git config core.sparseCheckout true
3) Se você já possui esse arquivo localmente, faça o que o git faz em um checkout esparso (diga que ele deve excluir esse arquivo, definindo o sinalizador "skip-worktree")
git update-index --skip-worktree config.php
4) Desfrute de um repositório onde seu arquivo config.php é seu - quaisquer que sejam as alterações no repositório.
Observe que os valores de configuração não devem estar no controle de origem:
- É uma possível violação de segurança
- Causa problemas como este para implantação
Isso significa que você DEVE excluí-los (colocá-los em .gitignore antes da primeira confirmação) e criar o arquivo apropriado em cada instância em que faz check-out do seu aplicativo (copiando e adaptando um arquivo "modelo")
Observe que, depois que um arquivo é assumido pelo git, o .gitignore não terá nenhum efeito.
Dado que, uma vez que o arquivo está sob controle de origem, você só tem duas opções (): - rebase todo o seu histórico para remover o arquivo (com git filter-branch) - crie uma confirmação que remova o arquivo. É como travar uma batalha perdida, mas, às vezes, você precisa conviver com isso.
config.phpconfirmadas?