En el proceso de usar Git, nos gusta que archivos como logs, archivos temporales, archivos intermedios compilados, etc., no se envíen al repositorio de código, por lo que necesitamos establecer las reglas de ignorar correspondientes para ignorar el commit de estos archivos.
Git ignora el método de los commits de archivos
Hay tres formas de ignorar archivos que no quieres hacer commit en Git.
Define el archivo .gitignore en tu proyecto Git
Esto se gestiona definiendo un archivo .gitignore en una carpeta del proyecto, donde se definen las correspondientes reglas de ignorarCarpeta actualEl comportamiento de commit de Git del archivo bajo el .gitignore pueden enviarse a repositorios públicos, lo que significa que todos los desarrolladores del proyecto comparten un conjunto definido de reglas ignore. En el archivo .gitingore, especifica una regla de ignorar en cada línea, siguiendo la sintaxis correspondiente. Por ejemplo:
Especifica los archivos de exclusión en la configuración del proyecto Git
Esto es solo una especificación temporal del comportamiento del proyecto, que requiere editar el archivo .git/info/exclude bajo el proyecto actual y luego escribir el archivo al que se debe ignorar el commit. Ten en cuenta que el directorio raíz de los archivos ignorados especificados de esta manera es la raíz del proyecto.
Un archivo .gitignore que define el Git global
Además de poder definir archivos .gitignore en tu proyecto, también puedes configurar un archivo global git .gitignore para gestionar el comportamiento de todos los proyectos Git. Este enfoque no se comparte entre diferentes desarrolladores de proyectos, y es un comportamiento a nivel de aplicación Git que se complementa al proyecto.
Esto también requiere crear un archivo .gitignore correspondiente, que puede colocarse en cualquier lugar. Luego configura Git con el siguiente comando:
Git ignora las reglas
Para las normas detalladas de ignorancia, consulte la documentación oficial en inglés en la dirección:El inicio de sesión del hipervínculo es visible.
Git ignora la prioridad de reglas
En el archivo .gitingore, especifica una regla de ignorar para cada línea, y Git comprueba múltiples fuentes al ignorar reglas, con la siguiente prioridad (de mayor a menor):
- Lee las reglas de ignorar disponibles desde la línea de comandos
- Las reglas definidas por el directorio actual
- Las reglas definidas por el directorio padre son recursivas
- $GIT_DIR/info/exclude
- core.excludesfile
Git ignora la sintaxis de coincidencia de reglas
En el archivo .gitignore, la sintaxis de la regla ignore de cada línea es la siguiente:
- Los espacios que no coinciden con archivos arbitrarios pueden usarse como separadores y pueden escaparse con barras diagonales
- # El comentario de identificación de archivo al principio puede evitarse usando una barra inversa
- ! La identificación del esquema al principio es negativa, y el archivo se incluirá de nuevo; si se excluye el directorio principal del archivo, use ! No se volverá a incluir. La fuga se puede hacer usando una barra diagonal
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Si un patrón no contiene una barra, coincide con el contenido en relación con la ruta actual del archivo .gitignore, y si el patrón no está en el archivo .gitignore, en relación con la raíz del proyecto
- ** Los catálogos multinivel coincidentes pueden usarse al principio, al centro y al final
- ? Emparejamiento universal de caracteres individuales
- [ ] Lista universal de coincidencias de personajes individuales
Ejemplos comunes de coincidencia:
- bin/: ignora la carpeta bin bajo la ruta actual, todo lo que hay debajo de esa carpeta se ignora, no el archivo bin
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Ignora debug/io.obj, no ignores debug/common/io.obj y tools/debug/io.obj
- **/foo: ignorar /foo, a/foo, a/b/foo, etc
- a/**/b: ignorar a/b, a/x/b, a/x/y/b, etc
- !/bin/run.sh: No ignores run.sh archivos en el directorio bin
- *.log: Ignora todos los archivos .log
- config.php: 忽略当前路径的 config.php 文件
.gitignore no entra en vigor
.gitignore solo puede ignorar archivos que no se han rastreado originalmente, y modificar .gitignore es ineficaz si algunos archivos ya han sido incluidos en el versionado.
La solución es eliminar la caché local (cambiarla a estado no rastreado) antes de hacer el commit de:
(Fin)
|