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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Ignorar | dejar un archivo fuera de Git a propósito | |
| Patrón | una línea que nombra los archivos que se ignoran | *.log |
| Seguido | ya está en un commit, así que Git lo vigila | |
| Sin seguimiento | todavía no está en ningún commit | |
| Secreto | un 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ón | Qué ignora | Ejemplo |
|---|---|---|
| `clave.txt` | un archivo con exactamente ese nombre | clave.txt |
| `*.log` | cualquier archivo que acabe en .log | caja.log |
| `build/` | una carpeta entera | build/salida.txt |
| `!guardar.log` | una excepción: este no se ignora | guardar.log |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Crea un repositorio llamado kiosco
git init -b main kioscoSe 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
printf 'Cafe 1.50\nTe 1.20\n' > kiosco/precios.txtSe 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
printf 'contrasena=abc123\n' > kiosco/clave.txtSe 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
printf 'caja abierta\n' > kiosco/caja.logSe 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
git -C kiosco add precios.txt clave.txtSe 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
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
printf '*.log\nclave.txt\n' > kiosco/.gitignoreSe 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
git -C kiosco status --short --ignoredSe 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ó
git -C kiosco check-ignore -v caja.logSe 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
printf 'contrasena=xyz789\n' > kiosco/clave.txtSe 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
git -C kiosco status --shortSe 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
git -C kiosco rm --cached clave.txtSe 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
git -C kiosco add .gitignoreSe 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
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
git -C kiosco --no-pager log --format=%s -- clave.txtSe 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.