2011-07-04 8 views
30

Si pongo un patrón en un archivo .gitignore con una barra inicial, no la barra se refiere al directorio en el que se encuentra el archivo .gitignore, o se refiere a la raíz todo el repositorio?Significado de dirigir barra en `.gitignore` presentar

(. Las páginas del manual que he encontrado han ocultado esta información con cuidado)

Respuesta

29

Este es el documentation text:

  • Una barra inicial coincide con el comienzo de la ruta. Por ejemplo, "/*.c" coincide con "cat-file.c" pero no con "mozilla-sha1/sha1.c".

Estos son mis conjeturas:

  • Si utiliza un en-repository- .gitignore, el directorio en el que se encuentra el .gitignore - no es realmente útil para que sea en relación con la raíz del repositorio.

    Un breve experimento con los mismos archivos en la raíz del repositorio y un subdirectorio (y un .gitignore en este mismo directorio) lo confirma.

  • Si utiliza un .git/info/exclude o core.excludesfile, supongo que es relativo a la raíz del repositorio.

    También esto es (para información/exclusión) confirmado por la misma prueba (ambas pruebas en 1.7.3.4).

Schnouki encontró la parte derecha de la documentación acerca de esto (el énfasis es mío):

  • [...]
  • patrones leídos desde un archivo .gitignore en el mismo directorio que el ruta, o en cualquier directorio principal, con patrones en los archivos de nivel superior (hasta el toplevel del árbol de trabajo) reemplazados por aquellos en archivos de nivel inferior hasta el directorio que contiene el archivo . Estos patrones coinciden con la ubicación del archivo .gitignore. Un proyecto normalmente incluye dichos archivos .gitignore en su repositorio , que contiene patrones para archivos generados como parte de la compilación del proyecto.
  • [...]

Se podría decir que este hecho podría haber sido repetido de nuevo a la parte posterior citado anteriormente, para mayor claridad.

+0

He leído el doco. La pregunta es, ¿nombre de ruta con respecto a qué? Odio el maldito git doco. Sus conjeturas no probadas serían más valiosas si se probaran. –

+5

De la parte 'man gitignore'," Description ":" Patrones leídos de un archivo .gitignore. [...] Estos patrones coinciden con la ubicación del archivo .gitignore ". – Schnouki

+0

@Norman: agregué mis resultados experimentales. –