Crear un tenedor público de código privado, con cambios privados al público

Estoy buscando lanzar una versión pública de mi sitio personal en Github para que las personas puedan ver la fuente y así puedan tener una idea de mi coding style, ayudar a mejorarlo o simplemente reírse de ello en mi cara.

El problema es, sin embargo, que quiero filtrar algunas cosas. Por supuesto, eso significa información confidencial (como passwords db y similares), pero también otras cosas que tengo en ejecución en la misma base de código, pero que no tienen nada que ver con lo que ven en la interfaz. Una de las cosas que necesito filtrar es la authentication que uso, tanto para problemas de security como de licencia. Como puede ver, esto pertenece a esta base de código, pero no es algo que pueda lanzar al público.

Pensé en clonar el repository de git existente, cambiar las cosas que no quiero que la gente vea y luego aplastar todas las confirmaciones reescribiéndolas. Sin embargo, entonces no puedo sacar ningún cambio nuevo del repository original, lo que mantendría el repo público difícil de mantener.

Entonces, ¿cuál sería la mejor manera de hacer esto? Realmente no quiero volver a calcular mi repository original, no puedo permitirme perder la historia. ¿O hay alguna otra manera inteligente de compartir mi fuente con personas?

editar : para aclarar, estoy usando el framework FuelPHP como base para mi sitio. Estoy tratando de configurar las cosas para que el repository público sea un tenedor del privado. Desarrollaría la fuente privada y luego impulsaría el repository público. Entre los files de configuration de la database, una de las cosas que necesito filtrar es la authentication que uso, tanto para problemas de security como de licencia. La simple eliminación de los files no ayuda: puede volver fácilmente al historial y recuperar los files

Parece que algunas refactorizaciones están en order, y este empujón para poner tus cosas en git puede ser solo el catalizador que necesitas para motivarte y asegurarte de que las cosas que son públicas estén separadas de las cosas que deberían ser privadas.

En primer lugar, mencionó las passwords de la database y otra información confidencial. Como ejemplo, WordPress mantiene la contraseña de la database en un file de configuration separado. Todos los usuarios descargan la misma copy de WordPress, pero cada usuario genera su propio wp-config.php. Considere refaccionar su código para que siga un model similar, ya que es mucho más fácil mantener 1 único file inconexo que tratar de administrar varios.

En cuanto a las "otras cosas", no estaba exactamente claro en lo que eso significa exactamente, pero asumo que se refiere a cosas que no tienen absolutamente nada que ver con el proyecto o los proyectos que tiene la intención de compartir. Si este es realmente el caso, entonces tal vez esa "otra cosa" debería mantenerse en un proyecto completamente diferente. Considere mover sus "otros" elementos a un subdominio en su sitio para que en realidad sean un website diferente en su server. Incluso puede enviarlos a un repository independiente en el sistema de control de versiones que esté utilizando.

Al final, una vez que haya creado un punto claro de separación entre el mundo público y el privado, no solo se resolverá su problema, sino que también se sentirá un poco más organizado y disfrutará la sensación de logro al conocerlo. he limpiado la casa.