2013-03-28 5 views

risposta

27

Come illustrato here e dettagliato in "this question", la funzione fnmatch() è coinvolta per interpretare i modelli glob, il che significa che le espressioni regolari non sono supportate.

Questo è ciò che gitignore man page menzioni:

In caso contrario, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) con la bandiera FNM_PATHNAME: i caratteri jolly nel modello non corrisponderanno un / nel nome del percorso.
Ad esempio, "Documentation/*.html" corrisponde a "Documentation/git.html" ma non "Documentation/ppc/ppc.html" o "tools/perf/Documentation/perf.html".

È possibile visualizzare una corrispondenza tra i modelli glob e le espressioni regolari in thosequestions.

8

I file .gitignore (e altri) utilizzano nomi di file glob, non espressioni regolari.

Dubito molto che sia possibile convincere gli hacker di Git a cambiarlo: ormai troppo radicato, e i glob sono molto più familiari come i fiammiferi dei file.

+10

Questo è un peccato. Potrebbe essere una funzione così utile. –

+3

@ArturBarseghyan, prendi in considerazione Mercurial, ha quella caratteristica accurata e molte altre funzioni interessanti. – toriningen

+0

@modchan: So che esiste in Mercurial e lo uso molto. Grazie per il commento comunque. –