Para responder a la pregunta: si desea excluir ciertos archivos de un pago, puede usar el pago escaso
1) En .git/info/sparse-checkout, define lo que quieres conservar. Aquí, queremos todos (*) pero (observe el signo de exclamación) config.php:
/*
!/config.php
2) Dígale a git que desea tener en cuenta el pago escaso
git config core.sparseCheckout true
3) Si ya tiene este archivo localmente, haga lo que git hace en un pago escaso (dígale que debe excluir este archivo configurando el indicador "skip-worktree" en él)
git update-index --skip-worktree config.php
4) Disfrute de un repositorio donde su archivo config.php es suyo, independientemente de los cambios que se realicen en el repositorio.
Tenga en cuenta que los valores de configuración NO DEBEN estar en el control de origen:
- Es una posible violación de seguridad
- Causa problemas como este para el despliegue
Esto significa que DEBE excluirlos (ponerlos en .gitignore antes de la primera confirmación) y crear el archivo apropiado en cada instancia en la que desproteja su aplicación (copiando y adaptando un archivo de "plantilla")
Tenga en cuenta que, una vez que git se hace cargo de un archivo, .gitignore no tendrá ningún efecto.
Dado que, una vez que el archivo está bajo el control de la fuente, solo tiene dos opciones (): - volver a basar todo su historial para eliminar el archivo (con git filter-branch) - crear una confirmación que elimine el archivo. Es como pelear una batalla perdida, pero, bueno, a veces tienes que vivir con eso.
config.phpcomprometido los cambios ?