2010-05-25 20 views
8

Estaba leyendo http://www.kernel.org/pub/software/scm/git/docs/v1.7.10/gitignore.html y los 6 puntos utilizados para explicar los patrones de ignorar parecen describir una variante personalizada de una sintaxis de búsqueda global. Estoy más familiarizado con Mercurial, que permite ignorar explícitamente mediante patrones glob o regex, sin hacer preguntas.Confundir la sintaxis .gitignore

  • ¿Hay alguna funcionalidad similar en Git?
  • ¿Alguien me puede indicar una referencia más exhaustiva que la página man de Git?

mejor,
t

+0

Todo engomado es personalizado en algún nivel; depende del armazón. Es de suponer que Mercurial también proporciona su propia versión de globbing; no tendría mucho sentido que el comportamiento cambiara en función del caparazón del usuario. – Cascabel

+1

Gracias, leí su otra respuesta en http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049, lo que ayudó a aclarar un poco las cosas. Sin embargo, el comentario anterior parece estar en contradicción con la observación de VonC y suya de que Git revierte a lo que permita la sintaxis de shell glob del usuario. Al volver a leer después de sus comentarios, la página man menciona de hecho la dependencia de exclusión en fnmatch() y el shell del usuario (los dos últimos puntos) – tmslnz

+0

No creo que dependa del shell del usuario. La documentación es un poco confusa, tienes razón, pero está usando fnmatch en cualquier caso. La documentación solo usa la frase "shell glob" como un reemplazo más legible para fnmatch. El código nunca invoca el shell del usuario. – Cascabel

Respuesta

1

No exactamente. Se puede utilizar una sintaxis similar a fiesta donde se puede especificar algo como esto:

*tmp_*~

que es lo mismo que la expresión regular: .*tmp_.*~

Hope esto le ayudará!

+1

¿No exactamente * qué?Recuerde: su respuesta no aparecerá necesariamente en la secuencia que tenía cuando la publicó por primera vez, por lo que responder a una respuesta anterior o a un comentario no es una buena idea. Además, incluso la pregunta podría ser revisada, y otras respuestas podrían eliminarse. – iconoclast

+0

¡Tienes razón, gracias! Me olvidé de este hecho ... –

3

No hay manera integrada de excluir por expresiones regulares. Si hubiera, lo verías en la página del manual.

+0

Como mencioné en su respuesta anterior http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 (y como Chris Johnsen detalla en la misma pregunta), todos las selecciones de archivos basadas en patrones se delegan a la función 'fnmatch()', ¿no es así? – VonC

+0

No es cierto jefromi, '! Pattern' niega que coincida – AD7six

+0

@ AD7six: Sí, y ** los patrones de gitignore no son expresiones regulares **. – Cascabel