Tengo un proyecto versionado con Git que me gustaría convertir en fuente abierta, pero tiene cierta información privada que es específica del entorno en el que se usó originalmente. Voy a cambiar la información en cuestión para cargarla desde un archivo de configuración que no está incluido en el repositorio. Me doy cuenta de que debería haber hecho esto en primer lugar, pero dado que la información privada todavía existe en compromisos previos, ¿cómo puedo eliminarla de mi historial? ¿Tengo que iniciar un nuevo repositorio basado en el último compromiso y perder todo mi historial o hay una forma de salvar el repositorio actual mientras elimino cualquier registro de la información privada?Eliminando información privada del antiguo Git commits
Editar: Para aclarar, no quiero eliminar por completo los archivos que contienen esta información privada, porque todavía se utilizan. Por el contrario, quiero eliminar/borrar/cambiar la aparición de ciertas cadenas dentro de ellos.
Esto parece una gran herramienta, pero no estoy seguro de que funcione en mi caso. Debería haber sido más claro en mi pregunta, pero lo que quiero eliminar es la aparición de ciertas cadenas: no quiero eliminar por completo los archivos porque los archivos todavía se usan. –
Oh, ya veo. Eso es un poco más complicado. Si ingresó estas cadenas privadas en confirmaciones que no contienen nada más que desee conservar, entonces puede usar git-filter-branch para eliminar solo esas confirmaciones (sin eliminar los archivos). Mi script no puede hacer eso por usted, pero si visita la página man de git-filter-branch, creo que verá cómo puede usarlo para eliminar las confirmaciones individuales también. –
Además, debería poder usar git-filter-history para aplicar un filtro personalizado (script) sobre sus archivos. Parece que podría ser un poco más difícil que simplemente eliminar un archivo o confirmar, pero debería hacer lo que quiera (y suena mejor que reiniciar su repositorio y perder todo su historial cuando lo libere al público). –