Curso
Cuando se trabaja en un repositorio Git, es habitual acumular archivos y directorios sin seguimiento que no forman parte del sistema de control de versiones del repositorio. Estos pueden incluir archivos temporales, artefactos de construcción u otros archivos creados localmente que no se envían. Con el tiempo, estos archivos pueden desordenar el directorio de trabajo, haciendo más difícil mantener un espacio de trabajo limpio y organizado.
Para solucionar este problema, Git proporciona el comando git clean
, que elimina los archivos y directorios sin seguimiento. En esta guía, te mostraré cómo utilizar de forma segura git clean
, sus diferentes opciones, y las mejores prácticas para evitar el borrado involuntario de archivos mientras mantienes ordenado tu repositorio Git. Para aprender más, yo recomiendo tomar nuestros cursos Fundamentos de Git e Introducción a los Conceptos de GitHub para aprender sobre el control de versiones y la diferencia entre Git y GitHub.
Comprender git clean
El comando git clean
es una herramienta útil en Git que elimina los 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 construcción que generan archivos temporales. Sin embargo, el comando git clean
debe utilizarse con precaución, ya que borra permanentemente los archivos y directorios no rastreados sin moverlos a la papelera o 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 versiones. Esto incluye
-
Archivos temporales creados por las construcciones
-
Archivos de registro o datos almacenados en caché
-
Archivos listados en .gitignore (si se especifica explícitamente con
-x
)
El comando git clean
es útil para mantener ordenado el directorio de trabajo, complementando a otros comandos Git como git reset
y git checkout
, que gestionan los cambios en los archivos rastreados.
Considero que la Complete Git Cheat Sheet es una práctica guía de referencia para los comandos Git más comunes.
Usos comunes de git clean
El comando git clean
es una herramienta útil para mantener limpio el directorio de trabajo. A continuación se exponen algunos casos de uso común en los que git clean
puede eliminar de forma segura archivos y directorios innecesarios.
Eliminar archivos no rastreados
Cuando trabajas en un repositorio Git, los archivos sin seguimiento 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 los archivos y directorios no rastreados. -
git clean -fx
: Elimina los archivos no rastreados e ignorados, como los que aparecen en.gitignore
.
Sin embargo, debes tener cuidado al utilizar la opción -fx
porque también elimina los archivos ignorados. Verifícalo siempre mediante una ejecución en seco (git clean -n
) antes de ejecutar el comando.
Modo interactivo
El comando git clean -i
habilita un modo interactivo, que permite a los usuarios eliminar selectivamente los archivos no rastreados. Este modo es útil cuando quieres tener más control sobre qué archivos o directorios se borran.
Supongamos que estás trabajando en un proyecto en el que ya has guardado los cambios en la carpeta Olympics
. Sin embargo, has añadido nuevas fuentes de datos denominadas, 2024_Data,
y 2025_Data
. Si ejecutas el comando git clean -i
, aparecerá un aviso que te permitirá elegir entre las siguientes opciones para eliminar los cambios no rastreados.
-
clean
: Eliminar archivos seleccionados -
filter
: Especifica un patrón para los archivos a limpiar -
select
: Selecciona archivos individuales por número -
quit
: Salir sin borrar nada
git clean -i modo interactivo. Imagen del autor.
Funcionamiento en seco por seguridad
Utilizar 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
enumera los archivos que deben eliminarse, pero no los elimina.
git clean -n para la ejecución en seco. Imagen del autor.
Combinar con git reset
Para restablecer completamente un directorio de trabajo Git, puedes combinar git reset and git clean
donde:
-
git reset --hard
: Restablece los archivos rastreados al último estado confirmado, descartando cualquier cambio local. -
git clean -fd
: Elimina los archivos y directorios sin seguimiento, dejando sólo los archivos confirmados.
Esta combinación garantiza un directorio de trabajo completamente limpio, lo que resulta útil cuando se cambia de rama, se deshacen cambios experimentales o se prepara un nuevo comienzo.
Consulta o Git Pull Force: Tutorial Cómo sobrescribir una rama local con una 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 los archivos y directorios no rastreados no deseados.
Paso 1: Comprueba el estado actual
Antes de limpiar, ejecuta git status
para comprobar el estado actual de tu repositorio y ver qué archivos están sin rastrear.
git status
git status para comprobar el estado actual del repositorio. Imagen del autor.
Paso 2: Vista previa de 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 ver qué borrar. Imagen del autor.
Paso 3: Eliminar archivos no rastreados
Ejecuta git clean -f
para eliminar los archivos no rastreados si la vista previa parece correcta.
git clean -f
Elimina los cambios sin seguimiento utilizando git clean -f. Imagen del autor.
Paso 4: Eliminar directorios no rastreados
Utiliza git clean -fd
para eliminar los directorios no rastreados.
git clean -fd
Elimina los directorios sin seguimiento utilizando git clean -fd. Imagen del autor.
Paso 5: Eliminar archivos ignorados
Para eliminar tanto los archivos no rastreados como los ignorados, utiliza el comando git clean -fx
.
git clean -fx
Paso 6: Utiliza el modo interactivo para una limpieza selectiva
Para un mayor control, considera la posibilidad de utilizar git clean -i
para la eliminación interactiva. Este modo te permite seleccionar qué archivos borrar individualmente.
Git clean -i
git clean -i modo interactivo para una limpieza selectiva. Imagen del autor.
git clean vs. Otros comandos Git
El comando git clean
se compara a menudo con otros comandos de Git que modifican o restablecen archivos. El cuadro siguiente destaca las principales diferencias:
Mando | Función |
---|---|
git clean |
Elimina permanentemente los archivos y directorios no rastreados. |
git reset |
Restablece los archivos rastreados a un estado anterior, afectando a los cambios preparados y confirmados. |
git checkout (o git restore ) |
Descarta los cambios en los archivos rastreados, pero no los elimina. |
git stash |
Guarda temporalmente los cambios rastreados y no rastreados para utilizarlos más tarde. |
Buenas prácticas de Git Clean
Para utilizar git clean
con seguridad y eficacia, sigue estas buenas prácticas:
-
Utiliza Pruebas en Seco (-n) Antes de Borrar: Utiliza siempre la opción
git clean -n
para realizar un simulacro antes de ejecutargit clean
. Esto te permite previsualizar qué archivos se eliminarán sin borrarlos realmente. -
Ten cuidado con los archivos ignorados: Cuando utilices
git clean
, ten cuidado con la opción-x
, que elimina los archivos ignorados. Esto puede borrar potencialmente archivos de configuración importantes que aparecen en.gitignore
. Si necesitas eliminar archivos ignorados, utiliza el comandogit clean -fx
. -
Combínalo con Restablecer Git 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 confirmado ygit clean -fd
elimina los archivos y directorios no rastreados. -
Utiliza el Modo Interactivo (-i) para borrados más seguros: En lugar de eliminar archivos a ciegas, utiliza el modo interactivo (
git clean -i
) para revisar y seleccionar los archivos a eliminar.
Riesgos potenciales y precauciones
Utilizar git clean
puede ser arriesgado si no se hace con cuidado, ya que borra permanentemente los archivos sin almacenarlos en ninguna parte. He aquí algunos riesgos y precauciones clave que debes tener en cuenta:
-
Los archivos se eliminan permanentemente: A diferencia de
git stash
, que guarda temporalmente los cambios,git clean
borra permanentemente los archivos y directorios no rastreados. Una vez eliminados, estos archivos no pueden recuperarse mediante Git. Si puedes necesitar los archivos más adelante, considera la posibilidad de guardarlos o hacer una copia de seguridad de ellos antes de ejecutar el comandogit clean
. -
Ten cuidado con la opción -x: Usando
git clean-fx
se eliminan los archivos ignorados, que pueden incluir archivos de configuración importantes listados en.gitignore
o cachés de dependencias comonode_modules/
yvenv/
. Eliminar accidentalmente estos archivos puede romper las compilaciones o los entornos de desarrollo, así que utiliza esta opción sólo cuando sea necesario. -
Haz primero un simulacro: Realiza siempre un simulacro utilizando
git clean -n
antes de ejecutargit clean -f
. Este paso te permite previsualizar qué archivos se eliminarán, ayudándote a evitar la eliminación accidental de archivos importantes -
Enfoques alternativos: En algunos casos, utilizar
git stash
puede ser una opción mejor quegit clean
. El comandogit stash -u
almacena los archivos no rastreados, excluyendo los 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.
Conclusión
Una base de código bien mantenida demuestra atención al detalle, eficacia y capacidad para gestionar responsablemente los activos digitales. Los empleadores buscan desarrolladores que conozcan las mejores prácticas, como utilizar git clean -n
antes de borrar archivos, ser cautelosos con los archivos ignorados utilizando -x
, y hacer uso de alternativas más seguras como git stash
.
Hacer cursos de DataCamp no sólo es una forma estupenda de aprender, sino también de indicar a los empresarios que te tomas en serio el desarrollo de software. Para ello, te recomiendo que estudies nuestra entrada del blog Las 20 mejores preguntas y respuestas para entrevistas sobre Git para todos los niveles y que sigas nuestro nuevo curso de Fundamentos de Git para convertirte en un experto en todo lo relacionado con Git.
Aprende hoy los fundamentos de Git
Preguntas frecuentes sobre Git Clean
¿Qué hace git clean?
git clean
elimina los archivos y directorios sin seguimiento de tu directorio de trabajo Git.
¿Git clean borra los archivos confirmados?
No, git clean
sólo elimina los archivos sin seguimiento y no afecta a los archivos confirmados o en fase.
¿Cómo puedo previsualizar los archivos antes de borrarlos?
Utiliza git clean -n
para realizar un simulacro y ver qué archivos se eliminarán.
¿Cuál es la diferencia entre git clean -f y git clean -fd?
git clean -f
elimina los archivos no rastreados, mientras que git clean -fd
también elimina los directorios no rastreados.
¿En qué se diferencia git clean de git reset?
git clean
elimina los archivos no rastreados, mientras que git reset
restaura los archivos rastreados a un estado anterior.
¿Hay alguna forma de eliminar archivos selectivamente?
Sí, utiliza git clean -i
para el modo interactivo, que te permite elegir los archivos que quieres borrar.