===== Eliminar datos sensibles del historial de Git (Usuarios, keys, passwords, códigos, etc) ===== En determinadas circunstancias es necesario eliminar o sobrescribir determinada información del historial de Git. Por ejemplo cuando se han subido ficheros con contraseñas en el código fuente, estos ficheros al ser sobrescritos por otros con la corrección no contendrán datos sensibles, pero si se mantendrán dentro del historial de Git. La forma más simple de sustituir un determinado texto por otro en el historial de Git es utilizando BFG Repo-Cleaner. **BFG Repo-Cleaner**: [[http://rtyley.github.io/bfg-repo-cleaner/]] Como dependencia solo necesita java, pero no funcionará con versiones antiguas, estos son los pasos para hacerlo funcionar en Centos 6.x. yum remove java_cup-0.10k-5.el6 java-1.5.0-gcj-1.5.0.0-29.1 curl -L "http://javadl.sun.com/webapps/download/AutoDL?BundleId=87436" --output "jre-7u55-linux-x86_64.rpm" rpm -ihv jre-7u55-linux-x86_64.rpm Creamos un fichero //passwords.txt// con las cadenas de texto que se desean sustituir, si no se especifica ninguna se utilizará //REMOVED// como se puede ver en la parte inferior del artículo. Contenido del archivo //passwords.txt//. Kj+hgFr 12345 Utilizando bfg para eliminar los datos sensibles del historial Git. git clone --mirror http://usuario@dominio.com/scm/lnxadm/prueba.git java -jar bfg-1.11.6.jar --replace-text passwords.txt prueba.git cd prueba.git git push **Resultado final** Lo que muestra el historial. # perl deadlock-logger -u dlmonitor -pKj+hgFr -h db08.dominio.com --dest u=root,p=12345,D=dba_util,t=deadlocks,h=localhost --pid /var/run/deadlock-logger.pid Después de utilizar Bfg. # perl deadlock-logger -u dlmonitor -p***REMOVED*** -h db08.dominio.com --dest u=root,p=***REMOVED***,D=dba_util,t=deadlocks,h=localhost --pid /var/run/deadlock-logger.pid **Buscar texto dentro de todo el historial de Git.** git log -p | grep --color -i "\*\*\*REMOVED\*\*\*"