Esiste un modo per utilizzare le espressioni regolari estese (ERE) in un file .gitignore
? Ad esempio, desidero utilizzare il carattere di ripetizione +
in un file .gitignore
. C'è un modo per farlo?Espressioni regolari estese (ERE) per .gitignore
risposta
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 bandieraFNM_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.
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.
Questo è un peccato. Potrebbe essere una funzione così utile. –
@ArturBarseghyan, prendi in considerazione Mercurial, ha quella caratteristica accurata e molte altre funzioni interessanti. – toriningen
@modchan: So che esiste in Mercurial e lo uso molto. Grazie per il commento comunque. –