[git advanced] .ignore ignora Youdao ignora la verificación gitcheck-ignore -v

.ignorar escenarios de uso

En el proyecto, no todos los archivos se guardan en el repositorio, como archivos de registro, archivos temporales, archivos de mayor peso, archivos generados por herramientas, etc.

Insertar descripción de la imagen aquí

Uso de .gitignore en nuevos proyectos

git ignore Este es un repositorio de código Java y aún no ha sido controlado remotamente.

1 Inicializar y generar la carpeta .git

La carpeta anterior no está inicializada.
Insertar descripción de la imagen aquí
Use git init -b main para crear la rama principal, inicialice la carpeta local y realice el control de versiones.
Insertar descripción de la imagen aquí
Genere una carpeta .git para el control de versiones.
Insertar descripción de la imagen aquí

2 git status Ver el estado actual de la carpeta

Insertar descripción de la imagen aquí

Copié una carpeta .idea/, así que ahora tengo esta carpeta adicional. Este es el caché de IDEA y no quiero cargarlo.

Consejo: Todo el contenido se incluirá en el repositorio en este momento.

3 Cree un archivo .ignore para ignorar los archivos que no desea cargar.

Cree un archivo .gitignore, si no es necesario crearlo, abra el archivo con un editor de texto y configúrelo.
Insertar descripción de la imagen aquí

4 Edite el estado git del archivo .gitignore para ver si surte efecto

Ahora quiero ignorar las carpetas de destino e ideas.

Este es el estado de git antes de la modificación.
Insertar descripción de la imagen aquí
*Cada configuración tiene su propia línea.
* El contenido de cada línea puede ser: nombre de archivo/directorio, ruta o coincidencia de patrón
Insertar descripción de la imagen aquí
Ver el estado actual de git, lo anterior es una comparación que no se ha agregado a .gitignore.
Insertar descripción de la imagen aquí
Puedes ver que la parte roja ha sido ignorada.
Si aún desea continuar ignorando el archivo txt, simplemente agregue el nombre del archivo al archivo .gitignore.
Insertar descripción de la imagen aquí
Verifique el estado de git,
Insertar descripción de la imagen aquí
puede encontrar que a.txt y b.txt se han ignorado y el uso más básico aquí ha terminado.

.gitignore uso avanzado

A menudo, en escenarios de desarrollo reales, por ejemplo, los proyectos de microservicios suelen tener varios directorios jerárquicos y cada directorio tiene el mismo archivo, o hay un archivo grande en un directorio profundo que no queremos cargar y hay muchos escenarios complicados. En este momento, no nos basta con copiar los directorios uno por uno a la carpeta .gitignore. Así que retomemos el artefacto .gitignore para superar estos problemas de mierda.

la coincidencia de patrones

Escenario 1: además de a.txt y b.txt, también tengo cientos de archivos que terminan en txt en el directorio raíz y no quiero cargar estos archivos en el almacén remoto. ¿Existe alguna forma mejor que copiar los nombres de los archivos línea por línea?

Por supuesto, podemos escribir una regla para hacer coincidir múltiples resultados, logrando así el efecto de que un hombre pueda pasar la prueba sin que otros miles lo pasen por alto. Puede utilizar nuestra coincidencia de patrones , que debería resultar familiar para quienes han aprendido expresiones regulares.

1 Una línea en blanco no coincide con ningún archivo, por lo que se suele utilizar como delimitador (para facilitar la lectura).
2 # se usa para comentarios, \ representa escape (si necesita usar entidad \, agregue "").
3 * puede coincidir con cualquier carácter (0 o más veces), ? puede coincidir con cualquier carácter (1 vez) (nota: ninguno de ellos puede coincidir con /).
4 / se usa para separar directorios:
4.1 Cuando / está al principio, significa que la coincidencia solo comenzará desde el directorio donde se encuentra el archivo .gitignore; de ​​lo contrario, se compararán todos los archivos subordinados.
4.2 Cuando / está al final, solo se buscará el directorio; de lo contrario, se buscarán directorios y archivos con el mismo nombre.
5 ! significa negación. El archivo que fue excluido originalmente se incluirá nuevamente después de usar el modo !. Pero si se excluye el directorio principal, entonces el uso no se incluirá nuevamente (este es un error común).
6 [] generalmente se usa para hacer coincidir una lista de caracteres, como por ejemplo: a[mn]z puede coincidir con amz y anz.
7 ** Se utiliza para hacer coincidir directorios de varios niveles, como a/**/b, que pueden coincidir con "a/b", "a/x/b", "a/x/y/b", etc.

/ax solo puede coincidir con archivos ax en el directorio raíz.
ax puede coincidir con ax en todos los directorios en el directorio raíz, como /b/ax, c/d/ax, etc. pueden coincidir con
ax/. Solo puede coincidir el directorio ax. No se pueden encontrar archivos ax.

Ejercicios de ejemplo de coincidencia de patrones

1 Ignora todo

Primero comenta lo que escribiste antes e ingresa * o **
Insertar descripción de la imagen aquí
git status para verificar el estado.
Insertar descripción de la imagen aquí

2 Ignorar todos los directorios

¿Recuerdas lo que significa el catálogo?

El final de / indica el directorio.
Todos los directorios son */, entrada en el archivo .gitignore y git status para ver los resultados.
Insertar descripción de la imagen aquí
Los resultados son los siguientes: se puede encontrar que, excepto la carpeta del directorio, no se ignoran otros archivos.
Insertar descripción de la imagen aquí

3 Ignore todo el contenido del directorio src excepto el archivo GulimallCouponApplication.java

Esta es la estructura de directorios de los archivos java.
Insertar descripción de la imagen aquí

\git ignore\src\main\java\com\atguigu\gulimall\coupon\GulimallCouponApplication.java

Nota: Windows copia directamente el directorio de archivos de la carpeta src\test. Esta barra de división de directorio no es la barra de división de estructura de directorio en git, \ significa escape (si necesita usar la entidad \, debe agregar ""). Debe cambiar \ a / en el archivo .gitignore.

Insertar descripción de la imagen aquí

Quizás la mayoría de ellos simplemente ignoran la carpeta src y luego usan un signo de exclamación para cancelar el archivo .java.
Insertar descripción de la imagen aquí

¡Esto es un error, Tietie! ! Echa un vistazo al efecto.
Insertar descripción de la imagen aquí
¡Todo el directorio src desapareció! ! !
Lee la Biblia nuevamente.

! Indica negación y el archivo que se excluyó originalmente se volverá a incluir después de usar el modo !. Pero si se excluye el directorio principal, entonces el uso de !
no se incluirá nuevamente
(este es un punto que suele ser propenso a errores).

Entonces en este momento debemos hacerlo paso a paso.
Primero ignore todos los archivos en la carpeta del cupón y luego cancele el archivo .java.
En este momento, debe verificar el directorio de nivel superior y luego ignorar
la estructura del directorio de cupones de la siguiente manera.

\git ignore\src\main\java\com\atguigu\gulimall\coupon

Hay otro directorio debajo del directorio de nivel superior hasta que esté el directorio principal, por lo que también debemos ignorar el directorio de recursos. También
Insertar descripción de la imagen aquí
hay dos directorios bajo el directorio src, por lo que también debemos ignorar manualmente el directorio de prueba.
Insertar descripción de la imagen aquí
Escriba nuestro consideraciones en el archivo .gitignore de la siguiente manera. ¡En
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
este punto descubrí que no hay ningún directorio /src en la parte roja! ! ! ¡Mi mentalidad está rota! ! ! Luego descubrí #¡No sigas! Úselos juntos y colóquelos al final de la línea.

Nota: #No cargue el final de la línea, esto causará errores. Puede pensar erróneamente que la siguiente cadena está formada por todos caracteres y luego no se puede reconocer. He estado trabajando en este error toda la tarde, será normal si borro el signo # y el siguiente texto, o lo pongo en una línea separada.

Insertar descripción de la imagen aquí
En este momento, el estado de git es razonable. Los programadores realmente tienen demasiados errores inesperados, así que no lo dé por sentado y use el método de variable de control para encontrarlo paso a paso. ! !
Insertar descripción de la imagen aquí
git add Agregar al área de preparación
git status Ver el estado del archivo
Insertar descripción de la imagen aquí
En este momento, finalmente llegó el archivo .java en nuestro directorio src.

Cambiar la forma de escribir

#强制删除缓存
git rm -r -f --cached . 

Insertar descripción de la imagen aquí
Utilice /**/ en lugar de directorios de varios niveles, el resultado sigue siendo el mismo
Insertar descripción de la imagen aquí

4 Conserve únicamente todos los archivos de a{un carácter}z.{sufijo nombre} en el directorio de destino

La estructura del directorio de destino es la siguiente.
Insertar descripción de la imagen aquí
Primero, solo mantenemos el directorio de destino. Dado que el directorio de destino está en el mismo nivel que el directorio .gitignore, puede usar directamente /* para ignorar todos los archivos en el directorio raíz (usted No se puede usar directamente * para ignorar directamente el directorio raíz. ), luego use ! para conservar la carpeta de destino.
Insertar descripción de la imagen aquí
Verifique el estado de git.
Insertar descripción de la imagen aquí
El primer paso fue exitoso. Ahora estamos considerando cómo implementar la segunda parte
a{one Character}z.{suffix name} para todos los archivos.

Primero filtre otras carpetas de destino
/target/*
y luego conserve todos los archivos de a{one Character}z.{suffix name}
!/target/a?z.*
Use git add. Después de agregarlos al almacén local, use git status para ver Estado del archivo
Puede ver que solo se ha cargado el archivo a9z.txt, lo que indica que se realizó correctamente.
Insertar descripción de la imagen aquí

¿Comprueba si la regla de ignorar es válida?

git check-ignore -v {
    
    文件或者目录路径}

Según las condiciones de la cuarta pregunta, verifique si se ignora el archivo a.txt en el directorio de destino.
Insertar descripción de la imagen aquí

git check-ignore target/a.txt

Insertar descripción de la imagen aquí
Si se muestra target/a.txt, significa que se ignora.
Si desea ver qué regla específica la ignoró, puede agregar -v

git check-ignore -v target/a.txt

Insertar descripción de la imagen aquí

.gitignore:4:/target/*  target/a.txt~

Indica la cuarta línea de instrucciones en el archivo .gitignore: /target/* ignora target/a.txt
66666

¿Cómo ignorar archivos que ya tienen seguimiento de versión?

Método: agregar gitignore -> eliminar caché local -> agregar nuevamente.

# 将缓存文件加入gitignore
git rm -r --cached .
git rm -r -f --cached . #强制删除缓存
git add .
git status 

Recuperar el seguimiento de la versión del archivo

Método: eliminar la configuración de gitignre -> Agregar nuevamente.

Resumir

Si ignora Youdao, debe prestar atención y buscarlo desde el subdirectorio.
Si ignora el directorio principal, el signo de exclamación será inútil.
Ignore la jerarquía claramente y obtenga el estado paso a paso.

git check-ignore -v {
    
    }
git rm -r --cached .

aprendizaje por vídeo

Autor: Mi Stehang https://www.bilibili.com/read/cv19909520 Fuente: bilibili

Supongo que te gusta

Origin blog.csdn.net/qq_41398619/article/details/132527332
Recomendado
Clasificación