¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Ignorar archivos en Git con .gitignore

Después de esta lección: Puedo mantener archivos fuera de Git con un archivo .gitignore.

Lección de 55 min15 comandosLaboratorio de Git y Gitea: aprende clone, commit y push en un servidor Git propio

Algunos archivos no deben subirse nunca

La carpeta de un proyecto guarda más que código. Guarda registros, copias que fabrica un programa y a veces una contraseña. Una contraseña guardada una vez la puede leer cualquiera que clone el proyecto.

Un archivo llamado .gitignore le dice a Git qué archivos dejar en paz. En esta lección escribes uno y arreglas un error.

Al terminar esta lección

Nota

Puedo mantener archivos fuera de Git con un archivo .gitignore.

Palabras clave

PalabraQué significaEjemplo
Ignorardejar un archivo fuera de Git a propósito
Patrónuna línea que nombra los archivos que se ignoran*.log
Seguidoya está en un commit, así que Git lo vigila
Sin seguimientotodavía no está en ningún commit
Secretoun texto, como una contraseña, que debe seguir privado

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un patrón nombra los archivos que se ignoran

Pon en el proyecto un archivo llamado .gitignore. Cada línea es un patrón. Git deja en paz los archivos que coinciden: siguen sin seguimiento y ya no aparecen como nuevos.

El punto del principio forma parte del nombre. Guarda también el .gitignore en un commit, para que todos los que clonen tengan las mismas reglas.

Ejemplo resuelto: cuatro tipos de patrón

PatrónQué ignoraEjemplo
`clave.txt`un archivo con exactamente ese nombreclave.txt
`*.log`cualquier archivo que acabe en .logcaja.log
`build/`una carpeta enterabuild/salida.txt
`!guardar.log`una excepción: este no se ignoraguardar.log

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Crea un repositorio llamado kiosco

Comando
git init -b main kiosco

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crea un archivo con dos precios

Comando
printf 'Cafe 1.50\nTe 1.20\n' > kiosco/precios.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crea un archivo con una contraseña falsa

Comando
printf 'contrasena=abc123\n' > kiosco/clave.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crea un archivo de registro

Comando
printf 'caja abierta\n' > kiosco/caja.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Prepara los precios y la clave por error

Comando
git -C kiosco add precios.txt clave.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Guárdalos en un commit

Comando
git -C kiosco commit -m "Anadir precios y clave"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Escribe el archivo .gitignore

Comando
printf '*.log\nclave.txt\n' > kiosco/.gitignore

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Mira qué ignora Git

Comando
git -C kiosco status --short --ignored

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pregunta qué patrón coincidió

Comando
git -C kiosco check-ignore -v caja.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ignorar no deshace un commit

Git solo ignora los archivos que todavía no sigue. clave.txt ya está en un commit, así que está seguido, y el patrón nuevo no cambia nada para él.

Para dejar de seguirlo, ejecuta git rm --cached. La opción --cached lo quita de Git y lo deja en tu carpeta. Sin ella, el archivo también se borra del disco.

Cambia la contraseña en el archivo

Comando
printf 'contrasena=xyz789\n' > kiosco/clave.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Mira qué dice Git ahora

Comando
git -C kiosco status --short

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Deja de seguir la clave, conserva el archivo

Comando
git -C kiosco rm --cached clave.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Prepara el archivo .gitignore

Comando
git -C kiosco add .gitignore

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Guarda los dos cambios

Comando
git -C kiosco commit -m "Ignorar registros y dejar de seguir clave.txt"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Busca cada commit que contiene la clave

Comando
git -C kiosco --no-pager log --format=%s -- clave.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que ignorar un archivo, o quitarlo de Git, lo oculta para siempre. No es así. El primer commit sigue guardando la contraseña antigua, y cualquiera con el historial puede leerla. Un secreto guardado es un secreto filtrado: cambia la contraseña.

Sobre este laboratorio y su código: Laboratorio de Git y Gitea: aprende clone, commit y push en un servidor Git propio

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.