2014-07-22 3 views

risposta

10

Come accennato in "Is there a way to use wildcards with git checkout?"

Git non tratta con il carattere jolly, ma fa la shell.

Come noted below, si avrebbe bisogno di sfuggire il carattere jolly in modo che git di interpretarlo: afile\*, o usare le virgolette semplici.

Il example section of git checkout mostra un uso jolly:

rm hello.c 
git checkout -- '*.c' 

Nota le virgolette intorno *.c.
Anche il file hello.c verrà estratto, anche se non si trova più nell'albero di lavoro, poiché il globbing dei file viene utilizzato per corrispondere alle voci dell'indice (non nella struttura di lavoro della shell).

Un'alternativa, per esempio, potrebbe essere quella di utilizzare la funzione Trova (come in "git add *.js” did not add the files in sub-directories")

find . -name '*js' -exec git checkout {} \; 

si può tentare la regex con find --regex

+0

risposta impressionante, posso vederlo risolvere altri problemi lungo la strada ... – user2167582

+0

git ora supporta regex al checkout, vedi sotto. – Ezra

+0

@Ezra Grazie. Ho modificato la risposta di conseguenza. – VonC

6

Proprio aggiornando questa risposta, ma sono stato in grado a git checkout con un carattere jolly quindi credo che sia possibile ora. Sto eseguendo git versione 1.9.3.

+5

Si noti che l'asterisco deve essere sostituito, tuttavia: 'git checkout foo \ *' –