2010-05-25 17 views
8

Stavo leggendo http://www.kernel.org/pub/software/scm/git/docs/v1.7.10/gitignore.html ei 6 punti utilizzati per spiegare i motivi di ignoranza sembrano descrivere una variante personalizzata di una sintassi di ricerca glob. Ho più familiarità con Mercurial, che consente di ignorare esplicitamente tramite glob o regex pattern, senza fare domande.Sintassi di gitignore confusa

  • Esiste una funzionalità simile in Git?
  • Qualcuno può indicarmi un riferimento più esaustivo della pagina man Git?

migliore,
t

+0

Tutto il globbing è personalizzato a un certo livello - dipende dalla shell. Presumibilmente Mercurial fornisce anche la sua versione del globbing; non avrebbe molto senso che il comportamento cambiasse a seconda della shell dell'utente. – Cascabel

+1

Grazie, ho letto la tua altra risposta su http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 che mi ha aiutato a chiarire un po 'le cose. Tuttavia il commento sopra sembra contraddire la tua osservazione VonC e che Git ritorna a qualsiasi cosa consenta la sintassi della shell glob dell'utente. In seguito alla rilettura dopo i tuoi commenti, la pagina man in realtà menziona la dipendenza di esclusione su fnmatch() e la shell dell'utente (gli ultimi due punti) – tmslnz

+0

Non penso che dipenda dalla shell dell'utente. La documentazione è un po 'confusa, hai ragione, ma sta usando fnmatch in entrambi i casi. La documentazione usa solo la frase "shell glob" come sostituto più leggibile per fnmatch. Il codice non invoca mai effettivamente la shell dell'utente. – Cascabel

risposta

1

Non esattamente. Può essere utilizzata una sintassi bash-like che consente di specificare qualcosa di simile:

*tmp_*~

che è lo stesso del Regexp: .*tmp_.*~

Spero che questo vi aiuterà!

+1

Non esattamente * cosa *?Ricorda: la tua risposta non apparirà necessariamente nella sequenza che ha fatto quando la pubblichi inizialmente, quindi rispondere a una risposta o a un commento precedente non è una buona idea. Inoltre, anche la domanda potrebbe essere rivista e altre risposte potrebbero essere cancellate. – iconoclast

+0

Hai ragione, grazie! Ho dimenticato questo fatto ... –

3

Non c'è modo built-in di escludere dalla regex. Se ce ne fossero, lo vedresti nella pagina man.

+0

Come ho detto nella risposta precedente http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 (e come i dettagli di Chris Johnsen nella stessa domanda), tutti le selezioni di file basate su pattern sono delegate alla funzione 'fnmatch()', no? – VonC

+0

Non vero jefromi, '! Pattern' nega una corrispondenza – AD7six

+0

@ AD7six: Sì, e ** i modelli di gitignore non sono regex **. – Cascabel