Mantenga el file en control remoto, pero el repository de clonación a través de Git ignorará ese file específico

Tengo varios files de configuration que me gustaría save en GitHub, pero ignoro más cambios. Al ignorar otros cambios, quiero decir: "Si alguien clona el repos, obtendrán la versión pnetworkingeterminada de esos files y podrán editarlos localmente, pero cuando ejecuten el git status esos files no aparecerán".

Entonces lo que hice / intenté hasta ahora es:

  1. Agrego esos files y realizo commit / push inicial a GitHub.
  2. Más tarde agregue esos files a .gitignore y vuelva a comprometerse con GitHub. Pero luego, cuando alguien clona ese repository, esos files permanecen rastreados.

Entonces probé dos opciones:

  1.  git rm --cached . git add . git commit .....` 

Pero en este caso, un commit posterior borró esos files.

  1. git update-index --assume-unchanged [filepath] y funciona, pero no quiero que alguien clone el repository y luego ejecute este command. ¿Hay alguna manera sin este command que pueda lograr mi objective?

En resumen:

Veo que esto no es posible ya que viola la constitución de git. Sin embargo, hay algunas soluciones.

  1. Administre la configuration pnetworkingeterminada como copy de distribución que almacena en repository remoto y bajo control de versión, por ejemplo config.php-dist (config.php.dist) para la distribución y agregue config.php a .gitignore y más tarde después de la clonación desde el repository remoto, renómbrelo file a algo como config.php y ajuste la configuration localmente. Como config.php agregado a .gitignore, la copy de configuration local nunca aparece en la list de estado de git.
  2. O mantenga los files .env para administrar diferentes configuraciones para diferentes entornos, lea los datos del file config.php basado en el entorno, Algo como esto: https://github.com/laravel/laravel .