Cuando se trabaja en un repositorio de Git, es común acumular archivos y directorios no rastreados que no forman parte del sistema de control de versiones del repositorio. Estos pueden incluir archivos temporales, artefactos de compilación u otros archivos creados localmente que no se han confirmado. Con el tiempo, estos archivos pueden saturar el directorio de trabajo, dificultando mantener un espacio de trabajo limpio y organizado.
Para abordar este problema, Git proporciona el comando git clean
, que elimina archivos y directorios no rastreados. En esta guía, te mostraré cómo utilizar de forma segura git clean
, sus diferentes opciones y las mejores prácticas para evitar la eliminación accidental de archivos mientras mantienes ordenado tu repositorio de Git. Para seguir aprendiendo, terecomiendo tomar nuestros cursos Foundations of Git y Introduction to GitHub Concepts para aprender sobre control de versiones y la diferencia entre Git y GitHub.
Entendiendo git clean
El comando git clean
es una herramienta útil en Git que elimina archivos no rastreados del directorio de trabajo. El comando git clean
es útil cuando necesitas restablecer tu directorio de trabajo a un estado prístino, como antes de cambiar de rama o después de ejecutar procesos de compilación que generan archivos temporales. Sin embargo, el comando git clean
debe usarse con precaución ya que elimina permanentemente archivos y directorios no rastreados sin enviarlos a la papelera de reciclaje.
A diferencia de git reset
o git checkout
, que modifican archivos rastreados, git clean
se ocupa estrictamente de archivos y directorios que no están bajo control de versión. Esto incluye:
-
Archivos temporales creados por compilaciones
-
Archivos de registro o datos en caché
-
Archivos listados en .gitignore (si se especifican explícitamente con
-x
)
El comando git clean
es útil para mantener un directorio de trabajo ordenado, complementando otros comandos de Git como git reset
y git checkout
, que gestionan los cambios en archivos rastreados.
Encuentro la Hoja de Trucos Completa de Git una guía de referencia útil para comandos comunes de Git.
Usos comunes para git clean
El comando git clean
es una herramienta útil para mantener un directorio de trabajo limpio. A continuación se presentan algunos casos de uso comunes donde git clean
puede eliminar de forma segura archivos y directorios innecesarios.
Eliminando archivos no rastreados
Cuando se trabaja en un repositorio de Git, los archivos no rastreados pueden acumularse con el tiempo. Las siguientes opciones ayudan a eliminarlos:
-
git clean -f
: Fuerza la eliminación de archivos no rastreados. -
git clean -fd
: Elimina archivos no rastreados y directorios no rastreados. -
git clean -fx
: Elimina archivos no rastreados e ignorados como los listados en.gitignore
.
Sin embargo, debes tener cuidado al usar la opción -fx
porque también elimina archivos ignorados. Siempre verifica usando una ejecución en seco (git clean -n
) antes de ejecutar el comando.
Modo interactivo
El comando git clean -i
habilita un modo interactivo, permitiendo a los usuarios eliminar selectivamente archivos no rastreados. Este modo es útil cuando deseas tener más control sobre qué archivos o directorios se eliminan.
Supongamos que estás trabajando en un proyecto donde ya has guardado los cambios en la carpeta Olympics
. Sin embargo, has agregado nuevas fuentes de datos llamadas 2024_Data
y 2025_Data
. Si ejecutas el comando git clean -i
, recibirás un aviso que te permitirá elegir entre las siguientes opciones para eliminar los cambios no rastreados.
-
limpiar
: Eliminar archivos seleccionados -
filtrar
: Especificar un patrón para los archivos a limpiar -
seleccionar
: Elegir archivos individuales por número -
salir
: Salir sin borrar nada
git clean -i modo interactivo. Imagen por Autor.
Ejecución en seco por seguridad
Usar la opción git clean -n
es una medida de seguridad útil ya que realiza una “ejecución en seco”, mostrando una lista de archivos y directorios no rastreados que se eliminarían sin borrarlos realmente. Esto te permite revisar los cambios antes de ejecutarlos.
En el ejemplo siguiente, el comando git clean -n
lista los archivos que deberían ser eliminados pero no los elimina.
git clean -n para ejecución en seco. Imagen por Autor.
Combinación con git reset
Para restablecer por completo un directorio de trabajo de Git, puedes combinar git reset
y git clean
donde:
-
git reset --hard
: Restablece los archivos rastreados al último estado confirmado, descartando cualquier cambio local. -
git clean -fd
: Elimina archivos y directorios no rastreados, dejando solo archivos confirmados.
Esta combinación asegura un directorio de trabajo completamente limpio, siendo útil al cambiar de rama, deshacer cambios experimentales o prepararse para un nuevo inicio.
Consulta el tutorial Git Pull Force: Cómo sobrescribir una rama local con la remota para aprender las mejores prácticas para sobrescribir cambios locales.
Guía paso a paso para usar git clean
Sigue estos pasos para limpiar de forma segura tu repositorio Git y eliminar archivos y directorios no deseados no rastreados.
Paso 1: Verificar el estado actual
Antes de limpiar, ejecuta git status
para verificar el estado actual de tu repositorio y ver qué archivos no están rastreados.
git status
git status para verificar el estado actual del repositorio. Imagen por el autor.
Paso 2: Previsualizar lo que se eliminará
Antes de ejecutar cualquier comando de eliminación, utiliza git clean -n
para previsualizar lo que se eliminará.
git clean -n
git clean -n para previsualizar qué se eliminará. Imagen por el autor.
Paso 3: Eliminar archivos no rastreados
Ejecuta git clean -f
para eliminar archivos no rastreados si la previsualización es correcta.
git clean -f
Eliminar cambios no rastreados usando git clean -f. Imagen por el autor.
Paso 4: Eliminar directorios no rastreados
Utiliza git clean -fd
para eliminar directorios no rastreados.
git clean -fd
Elimina directorios no rastreados usando git clean -fd. Imagen por el Autor.
Paso 5: Eliminar archivos ignorados
Para eliminar tanto archivos no rastreados como ignorados, utiliza el comando git clean -fx
.
git clean -fx
Paso 6: Utilizar el modo interactivo para limpieza selectiva
Para tener más control, considera usar git clean -i
para la eliminación interactiva. Este modo te permite seleccionar qué archivos eliminar de forma individual.
Git clean -i
git clean -i modo interactivo para limpieza selectiva. Imagen por el Autor.
git clean vs. Otros Comandos de Git
El comando git clean
a menudo se compara con otros comandos de Git que modifican o reinician archivos. La tabla a continuación destaca las diferencias clave:
Command | Function |
---|---|
git clean |
Elimina archivos y directorios no rastreados permanentemente. |
git reset |
Reinicia archivos rastreados a un estado anterior, afectando cambios preparados y confirmados. |
git checkout (o git restore ) |
Descarta cambios en archivos rastreados pero no los elimina. |
git stash |
Guarda temporalmente cambios rastreados y no rastreados para su uso posterior. |
Prácticas Recomendadas de Git Clean
Para utilizar git clean
de manera segura y efectiva, sigue estas mejores prácticas:
-
Utiliza Dry Runs (-n) Antes de la Eliminación: Siempre utiliza la opción
git clean -n
para realizar una ejecución de prueba antes de ejecutargit clean
. Esto te permite previsualizar qué archivos se eliminarán sin borrarlos realmente. -
Sé consciente de los archivos ignorados: Al usar
git clean
, ten cuidado con la opción-x
, que elimina los archivos ignorados. Esto puede eliminar potencialmente archivos de configuración importantes listados en.gitignore
. Si necesitas eliminar archivos ignorados, utiliza el comandogit clean -fx
. -
Combina con Git Reset para una limpieza completa: Para restablecer completamente tu repositorio, combina
git reset
congit clean
, dondegit reset --hard
restaura los archivos rastreados a su último estado comprometido ygit clean -fd
elimina los archivos y directorios no rastreados. -
Utilice el Modo Interactivo (-i) para Eliminaciones más Seguras: En lugar de eliminar archivos a ciegas, utilice el modo interactivo (
git clean -i
) para revisar y seleccionar los archivos a eliminar.
Riesgos Potenciales y Precauciones
El uso de git clean
puede ser riesgoso si no se hace con cuidado, ya que elimina permanentemente archivos sin almacenarlos en ningún lugar. Aquí hay algunos riesgos clave y precauciones a considerar:
-
Los archivos se eliminan permanentemente: A diferencia de
git stash
, que guarda temporalmente los cambios,git clean
elimina permanentemente los archivos y directorios no rastreados. Una vez eliminados, estos archivos no se pueden recuperar a través de Git. Si es posible que necesites los archivos más adelante, considera guardarlos o hacer una copia de seguridad antes de ejecutar el comandogit clean
. -
Sé cauteloso con la opción -x: Usar
git clean-fx
elimina los archivos ignorados, los cuales podrían incluir archivos de configuración importantes listados en.gitignore
o caches de dependencias comonode_modules/
yvenv/
. Eliminar accidentalmente estos archivos puede romper compilaciones o entornos de desarrollo, así que utiliza esta opción solo cuando sea necesario. -
Ejecutar una Prueba en Seco Primero: Siempre realiza una prueba en seco utilizando
git clean -n
antes de ejecutargit clean -f
. Este paso te permite previsualizar qué archivos serán eliminados, ayudándote a evitar la eliminación accidental de archivos importantes -
Enfoques Alternativos: En algunos escenarios, usar
git stash
puede ser una mejor opción quegit clean
. El comandogit stash -u
almacena archivos no rastreados, excluyendo archivos ignorados para una posible recuperación posterior, y el comandogit stash pop
restaura los cambios almacenados si es necesario. Este método es útil cuando necesitas cambiar de rama o limpiar tu espacio de trabajo sin perder permanentemente los cambios.
Conclusion
Un codebase bien mantenido muestra atención al detalle, eficiencia y la capacidad de gestionar activos digitales de manera responsable. Los empleadores buscan desarrolladores que comprendan las mejores prácticas como usar git clean -n
antes de eliminar archivos, ser cautelosos con los archivos ignorados usando -x
, y hacer uso de alternativas más seguras como git stash
.
Tomar cursos en DataCamp no solo es una excelente manera de aprender, sino también una excelente forma de señalar a los empleadores que te tomas en serio el desarrollo de software. Con ese fin, recomiendo estudiar el post del blog de Top 20 Preguntas y Respuestas de Entrevista de Git para Todos los Niveles y tomar nuestra nueva pista de habilidad Conceptos Fundamentales de Git para convertirte en un experto en todo lo relacionado con Git.