git .ignore-config
- .ignorar escenarios de uso
- Uso de .gitignore en nuevos proyectos
- .gitignore uso avanzado
- Resumir
.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.
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.
Use git init -b main para crear la rama principal, inicialice la carpeta local y realice el control de versiones.
Genere una carpeta .git para el control de versiones.
2 git status Ver el estado actual de la carpeta
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.
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.
*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
Ver el estado actual de git, lo anterior es una comparación que no se ha agregado a .gitignore.
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.
Verifique el estado de git,
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 **
git status para verificar el estado.
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.
Los resultados son los siguientes: se puede encontrar que, excepto la carpeta del directorio, no se ignoran otros archivos.
3 Ignore todo el contenido del directorio src excepto el archivo GulimallCouponApplication.java
Esta es la estructura de directorios de los archivos java.
\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.
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.
¡Esto es un error, Tietie! ! Echa un vistazo al efecto.
¡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
hay dos directorios bajo el directorio src, por lo que también debemos ignorar manualmente el directorio de prueba.
Escriba nuestro consideraciones en el archivo .gitignore de la siguiente manera. ¡En
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.
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. ! !
git add Agregar al área de preparación
git status Ver el estado del archivo
En este momento, finalmente llegó el archivo .java en nuestro directorio src.
Cambiar la forma de escribir
#强制删除缓存
git rm -r -f --cached .
Utilice /**/ en lugar de directorios de varios niveles, el resultado sigue siendo el mismo
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.
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.
Verifique el estado de git.
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.
¿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.
git check-ignore target/a.txt
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
.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