Cómo ignorar archivos y directorios en Git con.gitignore

27 feb 2021 5 min di lettura
Cómo ignorar archivos y directorios en Git con.gitignore
Indice dei contenuti

Introducción

A menudo, cuando trabaja en un proyecto que usa Git, debe excluir archivos o directorios específicos para que no se envíen al repositorio remoto.

El .gitignore se usa para especificar qué archivos sin seguimiento deben ser ignorados por Git.

Archivo.Gitignore

Los archivos ignorados suelen ser archivos específicos de la plataforma o archivos creados automáticamente por los sistemas de compilación. Algunos ejemplos comunes incluyen:

  • Archivos en tiempo de ejecución como registros, bloqueos, caché o archivos temporales.
  • Archivos con información confidencial, como contraseñas o claves API.
  • Código compilado, como .class o .o.
  • Directorio de dependencias, como /vendor o /node_modules.
  • Cree directorios, como /public, /out o /dist.
  • Los archivos del sistema, tales como .DS_Store o Thumbs.db
  • Archivo de configuración IDE o editor de texto.

Un .gitignore es un archivo de texto sin formato donde cada línea contiene un patrón para ignorar el archivo o directorio.

.gitignore utiliza esquemas globales para hacer coincidir nombres de archivo y caracteres comodín. Si tiene archivos o directorios que contienen un patrón comodín, puede usar una sola barra invertida ( \ ) como carácter de escape.

Comentarios

Las líneas que comienzan con un signo de almohadilla ( # ) son comentarios y se ignoran. Las líneas en blanco se pueden usar para mejorar la legibilidad del archivo y agrupar sus líneas de patrón.

barra oblicua

El símbolo de barra inclinada ( / ) representa un separador de directorio. La barra inclinada al principio de un patrón es relativa al directorio donde reside .gitignore

Si el patrón comienza con una barra inclinada, coincide con archivos y directorios solo en la raíz del repositorio.

Si el patrón no comienza con una barra inclinada, coincide con los archivos y directorios de cualquier directorio o subdirectorio.

Si el patrón termina con una barra inclinada, solo coincide con directorios. Cuando se ignora un directorio, todos sus archivos y subdirectorios también se ignoran.

Nombres de archivo literales

El patrón más simple es un nombre de archivo literal sin caracteres especiales.

Patrón Coincidencias de ejemplo
/access.log access.log
access.log access.log logs/access.log var/logs/access.log
build/ build

Símbolos comodín

* - El símbolo de asterisco coincide con cero o más caracteres.

Patrón Coincidencias de ejemplo
*.log error.log logs/debug.log build/logs/error.log

** - Dos símbolos de asterisco adyacentes coinciden con cualquier archivo o con cero o más directorios. Cuando está seguida de una barra inclinada ( / ), solo coincide con directorios.

Patrón Coincidencias de ejemplo
logs/** Coincide con cualquier cosa dentro del directorio de logs
**/build var/build pub/build build
foo/**/bar foo/bar foo/a/bar foo/a/b/c/bar

? - El signo de interrogación coincide con cualquier carácter.

Patrón Coincidencias de ejemplo
access?.log access0.log access1.log accessA.log
foo?? fooab foo23 foo0s

Corchetes

[...] - Coincide con cualquiera de los caracteres encerrados entre corchetes. Cuando dos caracteres están separados por un guión - indica un rango de caracteres. El rango incluye todos los caracteres que se encuentran entre esos dos caracteres. Los intervalos pueden ser alfabéticos o numéricos.

Si el primer carácter que sigue a [ es un signo de exclamación ( ! ), El patrón coincide con cualquier carácter excepto con los del conjunto especificado.

Patrón Coincidencias de ejemplo
*.[oa] file.o file.a
*.[!oa] file.s file.1 file.0
access.[0-2].log access.0.log access.1.log access.2.log
file.[ac].out file.a.out file.b.out file.c.out
file.[a-cx-z].out file.a.out file.b.out file.c.out file.x.out file.y.out file.z.out
access.[!0-2].log access.3.log access.4.log access.Q.log

Patrones negativos

Un patrón que comienza con un signo de exclamación ( ! ) Cancela (vuelve a incluir) cualquier archivo que haya sido ignorado por el patrón anterior. La excepción a esta regla es volver a incluir un archivo si se excluye su directorio principal.

Patrón Coincidencias de ejemplo
*.log !error.log error.log o logs/error.log no se ignorarán

Ejemplo

A continuación se muestra un ejemplo de cómo se .gitignore:

# Ignore the node_modules directory
 node_modules/# Ignore Logs
 logs
 *.log

 # Ignore the build directory
 /dist

 # The file containing environment variables.env

 # Ignore IDE specific files.idea/.vscode/*.sw*

Archivo.gitignore local

Un .gitignore local generalmente se coloca en la raíz del repositorio. Sin embargo, puede crear varios .gitignore en diferentes subdirectorios de su repositorio. Los patrones en los .gitignore se comparan con el directorio donde reside el archivo.

Los patrones definidos en archivos que residen en directorios de nivel inferior (subdirectorios) tienen prioridad sobre los de directorios de nivel superior.

Los .gitignore locales se comparten con otros desarrolladores y deben contener patrones que sean útiles para todos los demás usuarios del repositorio.

Reglas personales

Los patrones específicos de su repositorio local y que no deben distribuirse a otros repositorios deben establecerse en el .git/info/exclude.

Por ejemplo, puede utilizar este archivo para ignorar los archivos generados por las herramientas de su proyecto personal.

Archivo.gitignore global

Git también te permite crear un .gitignore global, donde puedes definir reglas de ignorar para cada repositorio de Git en tu sistema local.

El archivo puede tener el nombre que desee y almacenarse en cualquier ubicación. El lugar más común para guardar este archivo es el directorio de inicio. Que necesita para crear manualmente el archivo y configurar Git para usarlo.

Por ejemplo, para establecer ~/.gitignore_global como un archivo Git global para ignorar, haría lo siguiente:

Crea el archivo:

touch ~/.gitignore_global

Agregue el archivo a la configuración de Git:

git config --global core.excludesfile ~/.gitignore_global

Abra el archivo con su editor de texto y agregue sus reglas.

Las reglas globales son especialmente útiles para ignorar ciertos archivos que nunca desea confirmar, como archivos con información confidencial o archivos ejecutables compilados.

Ignorar un archivo comprometido

Los archivos de la copia de trabajo se pueden rastrear o no.

Para ignorar un archivo que se confirmó previamente, debe continuar con el comando unstage y eliminar el archivo del índice, luego agregar una regla para el archivo en .gitignore:

git rm --cached filename

La --cached permite no eliminar el archivo del árbol de trabajo, sino solo eliminarlo del índice.

Para eliminar un directorio de forma recursiva, utilice la opción -r

git rm --cached filename

Si desea eliminar el archivo tanto del índice como del sistema de archivos local, omita la opción --cached

Al eliminar archivos de forma recursiva, use la -n que hará un "ciclo de prueba" y mostrará qué archivos se eliminarán:

git rm -r -n directory

Depurar archivo.gitignore

A veces puede resultar difícil determinar el patrón por el que se ignora un archivo específico, especialmente cuando se utilizan varios .gitignore o esquemas complejos. En este caso, el git check-ignore con la -v es útil y le permite ver los detalles sobre el patrón de coincidencia.

Por ejemplo, para verificar el patrón para el que se www/yarn.lock, debe ejecutar:

git check-ignore -v www/yarn.lock

La salida muestra la ruta al gitignore, el número de línea correspondiente y el patrón real.

www/.gitignore:31:/yarn.lock www/yarn.lock

El comando también acepta más de un nombre de archivo como argumentos y el archivo no debe existir en su árbol de trabajo.

Ver todos los archivos omitidos

El comando de status --ignored muestra una lista de todos los archivos ignorados:

git status --ignored

Conclusión

El .gitignore permite excluir archivos para que no se registren en el repositorio. El archivo que contiene patrones globales que describen qué archivos y directorios deben ignorarse.

gitignore.io es un servicio en línea que le permite generar .gitignore para su sistema operativo, lenguaje de programación o IDE.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.