2010-05-25 16 views
8

Je lisais http://www.kernel.org/pub/software/scm/git/docs/v1.7.10/gitignore.html et les 6 points utilisés pour expliquer les modèles d'ignorés semblent décrire une variante personnalisée d'une syntaxe de recherche de glob. Je suis plus familier avec Mercurial, ce qui permet d'ignorer explicitement via des motifs glob ou regex, sans poser de questions.Confondre syntaxe .gitignore

  • Existe-t-il des fonctionnalités similaires dans Git?
  • Quelqu'un peut-il me diriger vers une référence plus exhaustive que la page de manuel de Git?

Best,
t

+0

La globalisation est personnalisée à un certain niveau - elle dépend de la coque. Probablement Mercurial fournit sa propre version de globbing aussi; cela n'aurait pas beaucoup de sens que le comportement change en fonction du shell de l'utilisateur. – Cascabel

+1

Merci, j'ai lu votre autre réponse sur http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 qui a aidé à éclaircir les choses un peu. Cependant, le commentaire ci-dessus semble contredire le vôtre et l'observation de VonC que Git revient à la syntaxe shell glob de l'utilisateur. En relisant après vos commentaires, la page man mentionne en fait la dépendance d'exclusion sur fnmatch() et le shell de l'utilisateur (les deux derniers points) – tmslnz

+0

Je ne pense pas que cela dépende du shell de l'utilisateur. La documentation est un peu déroutante, vous avez raison, mais elle utilise fnmatch dans les deux cas. La documentation utilise juste l'expression "shell glob" comme un remplacement plus lisible pour fnmatch. Le code n'appelle jamais réellement le shell de l'utilisateur. – Cascabel

Répondre

1

Pas exactement. Il peut être utilisé comme un bash syntaxe où vous pouvez spécifier quelque chose comme ceci:

*tmp_*~

qui est le même que l'expression rationnelle: .*tmp_.*~

Espérons que cela vous aidera!

+1

Pas exactement * quoi *?Rappelez-vous: votre réponse n'apparaîtra pas nécessairement dans l'ordre dans lequel elle a été publiée lorsque vous la publiez initialement, donc répondre à une réponse précédente ou à un commentaire n'est pas une bonne idée. De plus, même la question pourrait être révisée, et d'autres réponses pourraient être supprimées. – iconoclast

+0

Vous avez raison, merci! J'ai oublié ce fait ... –

3

Il n'y a pas moyen intégré d'exclure par regex. S'il y en avait, vous le verriez sur la page de manuel.

+0

Comme je l'ai mentionné dans votre réponse précédente http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 (et comme Chris Johnsen détails dans la même question), tous les sélections de fichiers basées sur un modèle sont déléguées à la fonction 'fnmatch()', n'est-ce pas? – VonC

+0

Pas vrai jefromi, '! Pattern' annule une correspondance – AD7six

+0

@ AD7six: Oui, et ** les motifs gitignore ne sont pas des regexes **. – Cascabel