HOWTO · Git

Cómo eliminar archivos sin seguimiento en Git

Previsualiza los archivos sin seguimiento con git clean y luego elimina archivos o directorios de forma segura. Aprende cómo -x y -X tratan los archivos ignorados.

En esta página

Para eliminar archivos sin seguimiento en Git, previsualiza los candidatos con git clean -n y, después de revisar la lista, ejecuta git clean -f. Añade -d si también quieres eliminar directorios sin seguimiento. git clean borra archivos del árbol de trabajo; Git no puede restaurar archivos sin seguimiento que no se hayan confirmado ni preparado.

Previsualizar los archivos sin seguimiento antes de limpiar

Un archivo sin seguimiento está en el árbol de trabajo, pero no se ha añadido al índice de Git, por lo que no se incluye en las confirmaciones. Ejecuta git status para ver las rutas sin seguimiento; Git puede resumir como un único directorio los archivos que contiene. Si quieres conservar un archivo y empezar a seguirlo, usa git add <file> en lugar de limpiarlo.

Antes de borrar nada, previsualiza los archivos sin seguimiento con git clean -n. La opción -n hace una simulación: Git muestra los archivos que eliminaría, pero no los borra. Para incluir directorios sin seguimiento en la vista previa, usa git clean -n -d. Revisa cada ruta de la lista; de forma predeterminada, los archivos ignorados no se incluyen.

Eliminar archivos y directorios sin seguimiento

Después de revisar la vista previa, usa -f para permitir la eliminación. Este ejemplo autónomo crea un repositorio Git temporal, previsualiza un archivo sin seguimiento y lo elimina, sin modificar tu repositorio actual. La salida observada muestra primero notes.txt como candidato a eliminación y después confirma que se ha eliminado.

scratch=$(mktemp -d)
trap 'rm -rf "$scratch"' EXIT
git -C "$scratch" init -q
printf 'temporary file\n' > "$scratch/notes.txt"
LC_ALL=C git -C "$scratch" clean -n
LC_ALL=C git -C "$scratch" clean -f
Would remove notes.txt
Removing notes.txt

En tu árbol de trabajo, usa git clean -f para eliminar archivos sin seguimiento y git clean -f -d para eliminar archivos y directorios sin seguimiento. Primero ejecuta la vista previa correspondiente, git clean -n o git clean -n -d, y revisa los elementos que muestra. Git no puede deshacer la eliminación de archivos que nunca se confirmaron ni se prepararon.

Si solo quieres eliminar algunos archivos, borra esas rutas con el administrador de archivos o con un comando como rm <file>. Para seleccionar candidatos de forma interactiva, usa git clean -i; Git muestra un menú en lugar de eliminar todos los candidatos de una vez. Un cliente gráfico también puede mostrar los archivos sin seguimiento, aunque las etiquetas y los controles de eliminación varían según la aplicación.

Gestionar archivos ignorados y otras opciones de git clean

Por lo general, Git protege de git clean los archivos que coinciden con .gitignore. Entre los archivos ignorados puede haber resultados de compilación, configuración local o datos que aún necesitas; revisa qué abarcaría la limpieza antes de incluirlos.

  • -x incluye los archivos ignorados junto con los demás archivos sin seguimiento. Previsualiza esta limpieza más amplia con git clean -n -d -x y ejecuta git clean -f -d -x solo si quieres eliminar esos candidatos.
  • -X selecciona únicamente los archivos ignorados. Previsualiza con git clean -n -d -X y luego usa git clean -f -d -X para eliminar solo archivos y directorios ignorados.
  • -d incluye directorios sin seguimiento; -f permite la eliminación; -n muestra una vista previa; e -i abre la selección interactiva.

Elige -x si quieres una limpieza amplia que incluya elementos ignorados y otros elementos sin seguimiento. Elige -X si quieres limpiar únicamente elementos ignorados. Revisa la vista previa antes de ejecutar cualquiera de los dos comandos, sobre todo si las rutas ignoradas contienen archivos locales que quieras conservar.